From: <Saved by Windows Internet Explorer 7>
Subject: Rails development on Windows! | Matt-O-Matic 3000
Date: Sun, 4 May 2008 11:15:56 +0200
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----=_NextPart_000_0068_01C8ADD8.3940D330"
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3198

This is a multi-part message in MIME format.

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/2008/04/07/rails-development-on-windows/

=EF=BB=BF<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" =
"http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML dir=3Dltr xmlns=3D"http://www.w3.org/1999/xhtml"><HEAD=20
profile=3Dhttp://gmpg.org/xfn/11><TITLE>Rails development on Windows! | =
Matt-O-Matic 3000</TITLE>
<META http-equiv=3Dcontent-type content=3D"text/html; charset=3DUTF-8">
<META content=3D"Kickin=E2=80=99 it =E2=80=98Old School=E2=80=99 since =
=E2=80=98Old School=E2=80=99 was just =E2=80=98School=E2=80=99"=20
name=3Ddescription><LINK=20
href=3D"http://www.mattpolito.info/wp-content/themes/personal/style.css" =

type=3Dtext/css rel=3Dstylesheet><LINK title=3D"Matt-O-Matic 3000 Posts =
RSS feed"=20
href=3D"http://www.mattpolito.info/feed/" type=3Dapplication/rss+xml=20
rel=3Dalternate><LINK title=3D"Matt-O-Matic 3000 Comments RSS feed"=20
href=3D"http://www.mattpolito.info/comments/feed/" =
type=3Dapplication/rss+xml=20
rel=3Dalternate><LINK href=3D"http://www.mattpolito.info/xmlrpc.php"=20
rel=3Dpingback><LINK title=3DRSD =
href=3D"http://www.mattpolito.info/xmlrpc.php?rsd"=20
type=3Dapplication/rsd+xml rel=3DEditURI><LINK=20
href=3D"http://www.mattpolito.info/wp-includes/wlwmanifest.xml"=20
type=3Dapplication/wlwmanifest+xml rel=3Dwlwmanifest>
<SCRIPT=20
src=3D"http://www.mattpolito.info/wp-content/plugins/save-my-pre/save-pre=
.js?ver=3D7796"=20
type=3Dtext/javascript></SCRIPT>

<META content=3D"MSHTML 6.00.6000.16640" name=3DGENERATOR><!-- all in =
one seo pack 1.4.6.8 [220,282] -->
<META=20
content=3D"Yes, it can be done! Contrary to popular belief... Windows =
can be a great Rails development platform. I know that those Mac guys =
have you all convinced that"=20
name=3Ddescription>
<META content=3D"console,cygwin,e-text editor,ruby on rails,windows"=20
name=3Dkeywords><!-- /all in one seo pack --><LINK=20
href=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highl=
ighter/Styles/SyntaxHighlighter.css"=20
type=3Dtext/css rel=3Dstylesheet>
<STYLE type=3Dtext/css>#headimg {
	DISPLAY: inline; BACKGROUND: =
url(http://www.mattpolito.info/wp-content/themes/personal/images/headimg.=
jpg) no-repeat; FLOAT: left; MARGIN: 0px 0px 0px 15px; OVERFLOW: hidden; =
WIDTH: 670px; HEIGHT: 200px
}
#headimg H1 {
	DISPLAY: none
}
#headimg #desc {
	DISPLAY: none
}
</STYLE>
</HEAD>
<BODY class=3Dpersonal>
<DIV id=3Dwrapper>
<DIV id=3Dheader>
<H1><A title=3D"Matt-O-Matic 3000 home page"=20
href=3D"http://www.mattpolito.info/">Matt-O-Matic 3000</A></H1>
<DIV id=3Dsearch>
<FORM id=3Dsearchform action=3Dhttp://www.mattpolito.info/ method=3Dget>
<DIV class=3Dkeyword><INPUT id=3Ds size=3D30 name=3Ds></DIV>
<DIV class=3Dgo><INPUT id=3Dsearchsubmit title=3DSearch type=3Dimage =
alt=3DSearch=20
src=3D"http://www.mattpolito.info/wp-content/themes/personal/images/bg-se=
arch-button.gif"=20
name=3Dsearchsubmit></DIV></FORM></DIV></DIV>
<DIV class=3D"container outter">
<DIV class=3D"container inner">
<DIV id=3Dmenu>
<UL id=3Dnav>
  <LI><A title=3D"Subscribe by RSS" =
href=3D"http://www.mattpolito.info/feed/"><SPAN=20
  class=3Dfeed>RSS</SPAN></A> </LI></UL></DIV>
<DIV class=3Dtop></DIV>
<DIV class=3Dclear></DIV>
<DIV id=3Dheadimg></DIV>
<DIV id=3Dcontent>
<DIV class=3Dpost id=3Dpost-55>
<H2 class=3Dentry-title><A title=3D"Rails development on Windows!"=20
href=3D"http://www.mattpolito.info/2008/04/07/rails-development-on-window=
s/">Rails=20
development on Windows!</A></H2>
<DIV class=3Dentry-meta><SPAN class=3Dauthor>Published by <A=20
title=3D"Posts by Matt Polito"=20
href=3D"http://www.mattpolito.info/author/phatmatt123/">Matt =
Polito</A></SPAN>=20
</DIV>
<DIV class=3Dentry-date><SPAN class=3Dmonth>Apr</SPAN> <SPAN =
class=3Dday>07</SPAN>=20
</DIV>
<DIV class=3Dentry-content>
<P>Yes, it can be done! Contrary to popular belief=E2=80=A6 Windows can =
be a great Rails=20
development platform. I know that those Mac guys have you all convinced =
that=20
it=E2=80=99s too hard and painful to do and you should just go be a <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
href=3D"http://en.wikipedia.org/wiki/Apple_Switch_ad_campaign">switcher</=
A>. Well=20
today I am going to show you, with a little work, you can be up and =
running with=20
ease=E2=80=A6.similar to a Mac.</P>
<P>To begin, I wanted to say that the basis for this article orginally =
came from=20
a post over at Garbage Burrito on <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/garbageburrito.com');"=20
href=3D"http://garbageburrito.com/blog/entry/391/a-macesque-rails-develop=
ment-environment-on-windows">how=20
to get a Mac-esque development environment using windows</A>. After =
being asked=20
a few times at my <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/www.chicagoruby.org');"=20
href=3D"http://www.chicagoruby.org/">local Ruby group</A> how I develop =
on a=20
Windows machine=E2=80=A6 I have decided to go a little more in depth and =
show you=20
exactly what I=E2=80=99ve come up with. So here we go!</P>
<P>Most of you may already know that Sqlite3 is the default database =
used by=20
Rails now in 2.02. This can be easily changed using the =
=E2=80=98-d=E2=80=99 parameter when=20
using your =E2=80=98rails=E2=80=99 command. The reason I mention this is =
because I=E2=80=99ve been using=20
Sqlite3 for a bit and have had a bit of difficulty when it comes to =
using=20
add_column in my migrations. For that reason I am going to suggest =
installing <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/www.mysql.com');"=20
href=3D"http://www.mysql.com/">MySQL</A>. If you know what =
you=E2=80=99re doing and don=E2=80=99t=20
want MySQL, go ahead and skip this step.</P>
<P><STRONG>Step 1</STRONG> | With that being said=E2=80=A6 Go install <A =

onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/dev.mysql.com');"=20
href=3D"http://dev.mysql.com/downloads/mysql/5.0.html#win32">MySQL</A>. =
You can=20
easily find it at their site. I suggest not grabbing the =
=E2=80=98Essentials=E2=80=99 version=20
just to make sure that you have everything you need if the time comes. =
Make sure=20
you go through the installer and at the end you=E2=80=99ll want to use =
the =E2=80=98Server=20
Instance Config Wizard=E2=80=99 to setup the server.</P>
<P><STRONG>Step 2</STRONG> | Go install <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/www.e-texteditor.com');"=20
href=3D"http://www.e-texteditor.com/">e-Text Editor</A>! I have used a =
bunch of=20
text editors to try and get that <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/macromates.com');"=20
href=3D"http://macromates.com/">TextMate</A> feel but this is so far the =
closest=20
Windows alternative. If you like it, please buy it. The creator updates =
very=20
frequently and I=E2=80=99m sure he would love your support.</P>
<P><STRONG>Step 3</STRONG> | Since e-Text Editor is a TextMate =
clone=E2=80=A6 it uses a=20
lot of UNIX commands. So we=E2=80=99ll now need to now install <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/www.cygwin.com');"=20
href=3D"http://www.cygwin.com/setup.exe">Cygwin</A>. This is a emulated =
UNIX shell=20
that can run under Windows. This also helps since a lot of the tutorials =
for=20
Rails were created under Mac/Linux=E2=80=A6 you can easily follow along. =
Pretty much=20
click through the installer. There are only a couple places to make sure =

settings are correct. When you hit the =E2=80=98Choose Installation =
Directory=E2=80=99 screen,=20
you will want to make sure that =E2=80=98Install For=E2=80=99 is set to =
=E2=80=98Just Me=E2=80=99 and the=20
=E2=80=98Default Text File Type=E2=80=99 is set to =E2=80=98Unix / =
binary (RECOMMENDED)=E2=80=99. These are=20
probably the default settings but I wanted to make sure that you get =
this=20
correct. Go ahead and continue clicking through the installation screens =
until=20
you get to the =E2=80=98Select Packages=E2=80=99 screen. Think of these =
as a list of =E2=80=98addons=E2=80=99=20
for Cygwin. You will need a bunch of them so I will list all that I use. =
To make=20
it easier, click on the =E2=80=98View=E2=80=99 button until it changes =
to =E2=80=98Full=E2=80=99. Now we can see=20
all packages available. These are the packages I have installed (many =
are=20
selected by default but these are extras you will need):</P>
<UL>
  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
  href=3D"http://en.wikipedia.org/wiki/CURL">curl</A>=20
  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
  href=3D"http://en.wikipedia.org/wiki/GNU_Compiler_Collection">gcc</A> =
(needed to=20
  compile certain gems)=20
  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
  href=3D"http://en.wikipedia.org/wiki/Git_%28software%29">git</A>=20
  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
  href=3D"http://en.wikipedia.org/wiki/Grep">grep</A>=20
  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/www.gentoo.org');"=20
  =
href=3D"http://www.gentoo.org/proj/en/keychain/http://www.gentoo.org/proj=
/en/keychain/">keychain</A>=20

  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
  href=3D"http://en.wikipedia.org/wiki/Make_%28software%29">make</A> =
(needed to=20
  compile certain gems)=20
  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
  =
href=3D"http://en.wikipedia.org/wiki/Ruby_%28programming_language%29">rub=
y</A>=20
  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
  href=3D"http://en.wikipedia.org/wiki/Rsync">rsync</A> (it=E2=80=99s =
useful for other=20
  things not Rails related)=20
  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
  href=3D"http://en.wikipedia.org/wiki/SQLite3">sqlite3</A>=20
  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
  =
href=3D"http://en.wikipedia.org/wiki/Subversion_%28software%29">subversio=
n</A>=20
  <LI>subversion-ruby=20
  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
  href=3D"http://en.wikipedia.org/wiki/Wget">wget</A>=20
  <LI><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/en.wikipedia.org');"=20
  href=3D"http://en.wikipedia.org/wiki/Which_%28Unix%29">which</A> =
</LI></UL>
<P>Go ahead and finish going through the installer. It may install for a =
while,=20
that is normal.</P>
<P><STRONG>Step 4</STRONG> | Do yourself a favor and install <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/sourceforge.net');"=20
href=3D"http://sourceforge.net/project/showfiles.php?group_id=3D43764">Co=
nsole</A>.=20
This very useful program lets you have tabbed command prompt windows =
open. Once=20
that is installed you will want to go into settings and add a tab for =
Cygwin.=20
Name it whatever you want but you=E2=80=99ll want to enter this command =
( <SPAN=20
style=3D"FONT-FAMILY: courier new,courier">c:\cygwin\bin\bash =
=E2=80=93login -i=20
)</SPAN>into the shell field. Enough said.</P>
<P><STRONG>Step 5</STRONG> | Install <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/rubyforge.org');"=20
href=3D"http://rubyforge.org/frs/?group_id=3D126&amp;release_id=3D20667">=
Ruby=20
Gems</A>. Download and unzip to your system. I put mine in the root =
directory,=20
doesn=E2=80=99t really matter where it goes. Once you have that =
done=E2=80=A6 use Cygwin to=20
navigate the the Ruby Gems folder. Then install Ruby Gems by invoking=20
setup.rb.</P>
<OL>
  <LI><SPAN style=3D"FONT-FAMILY: courier new,courier">cd c:</SPAN>=20
  <LI><SPAN style=3D"FONT-FAMILY: courier new,courier">cd /Ruby\ gems =
(or where=20
  ever you put it)</SPAN>=20
  <LI><SPAN style=3D"FONT-FAMILY: courier new,courier">ruby =
setup.rb</SPAN>=20
</LI></OL>
<P><STRONG>Step 6</STRONG> | Install Rails. Now what you=E2=80=99ve all =
been waiting=20
for=E2=80=A6 <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/www.rubyonrails.org');"=20
href=3D"http://www.rubyonrails.org/">Ruby on Rails</A>. Rails will come =
to you as=20
a =E2=80=98Gem=E2=80=99. It=E2=80=99s really just a kind of package =
management, which is really great=20
for keeping things up to date. You can install any gem using the =
=E2=80=98gem=E2=80=99 command=20
and a sequence of parameters.</P>
<UL>
  <LI><PRE>gem install rails --include-dependencies</PRE></LI></UL>
<P>When going through this process, the package management will ask you =
to=20
install other gems as well. These are OK as Rails has dependencies and =
we want=20
them included. These should be:</P>
<UL>
  <LI>actionpack=20
  <LI>activerecord=20
  <LI>activeresource=20
  <LI>activesupport=20
  <LI>rake </LI></UL>
<P><STRONG>Step 7</STRONG> | Install other needed Gems. This may be =
different=20
for all of you, but since we are using MySQL=E2=80=A6 we should install =
the gem that=20
binds rails to it. I will also list some others that I have been using. =
Please=20
let me know what you start out with in the comment section.</P>
<UL>
  <LI><SPAN style=3D"FONT-FAMILY: courier new,courier">gem install =
mysql</SPAN>=20
  <LI><SPAN style=3D"FONT-FAMILY: courier new,courier">gem install =
mongrel</SPAN>=20
  <LI><SPAN style=3D"FONT-FAMILY: courier new,courier">gem install =
haml</SPAN>=20
  <EM>(purely preference)</EM>=20
  <LI><SPAN style=3D"FONT-FAMILY: courier new,courier">gem install =
rspec</SPAN>=20
  <LI><SPAN style=3D"FONT-FAMILY: courier new,courier">gem install=20
  rspec-haml-scaffold</SPAN> <EM>(purely preference)</EM> </LI></UL>
<P><STRONG>Step 8</STRONG> | Try it out! Hoping that I didn=E2=80=99t =
miss anything=20
here=E2=80=A6 this should work! From now on you=E2=80=99ll be using =
Cygwin as your command line=20
editor. When you start Cygwin, you should be placed in your =
=E2=80=98home=E2=80=99 directory. I=20
usually make a directory called =E2=80=98websites=E2=80=99 or something =
similar. I recommend=20
this so you don=E2=80=99t have your projects scattered all over your =
home directory.</P>
<UL>
  <LI><SPAN style=3D"FONT-FAMILY: courier new,courier">mkdir =
websites</SPAN>=20
</LI></UL>
<P>Now you will want to cd into your =E2=80=98websites=E2=80=99 =
directory so that we can make a=20
new Rails project. Go ahead and make the obligatory test blog using this =

command.</P>
<UL>
  <LI><SPAN style=3D"FONT-FAMILY: courier new,courier">rails blog -d =
mysql</SPAN>=20
  </LI></UL>
<P>Again, now that Sqlite3 is the default database for Rails=E2=80=A6 =
you=E2=80=99ll need to add=20
the =E2=80=98-d=E2=80=99 parameter with what database you=E2=80=99d like =
to use. As previously=20
discussed, we will be using MySQL.</P>
<P>If all works correctly, you should see Rails creating your directory=20
structure and all is well! If not, go ahead and leave a comment on how =
much I=20
suck at writing tutorials. :-)</P>
<P>Hope this helps the Rails/Windows community and again please let me =
know if=20
there is anything I can add to this article.</P>
<P>Thanks to <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/www.workingwithrails.com');"=20
href=3D"http://www.workingwithrails.com/person/5526-ben-kittrell">Ben =
Kittrell</A>=20
of <A=20
onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/garbageburrito.com');"=20
href=3D"http://garbageburrito.com/">Garage Burrito</A> for laying the =
ground work=20
with his original article.</P></DIV>
<DIV class=3Dentry-foot><SPAN class=3Dcat-links>Filed under: <A=20
title=3D"View all posts in Computers"=20
href=3D"http://www.mattpolito.info/category/computers/"=20
rel=3D"category tag">Computers</A>, <A title=3D"View all posts in =
Programming"=20
href=3D"http://www.mattpolito.info/category/programming/"=20
rel=3D"category tag">Programming</A>, <A title=3D"View all posts in =
Tutorial"=20
href=3D"http://www.mattpolito.info/category/tutorial/"=20
rel=3D"category tag">Tutorial</A>, <A=20
href=3D"http://www.mattpolito.info/tag/console/" rel=3Dtag>console</A>, =
<A=20
href=3D"http://www.mattpolito.info/tag/cygwin/" rel=3Dtag>cygwin</A>, <A =

href=3D"http://www.mattpolito.info/tag/e-text-editor/" rel=3Dtag>e-text =
editor</A>,=20
<A href=3D"http://www.mattpolito.info/tag/ruby-on-rails/" rel=3Dtag>Ruby =
on=20
Rails</A>, <A href=3D"http://www.mattpolito.info/tag/windows/"=20
rel=3Dtag>Windows</A></SPAN> </DIV></DIV>
<DIV id=3Dcomments><!-- You can start editing here. -->
<H3 id=3Dcomments-count>8 Responses</H3>
<OL class=3Dcommentlist>
  <LI class=3D"alt " id=3Dcomment-16>
  <P class=3Dcomment-meta><SPAN class=3Dcomment-author><STRONG><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/jimneath.org');"=20
  href=3D"http://jimneath.org/" rel=3D"external nofollow">Jim Neath</A>=20
  Says</STRONG>:</SPAN> </P>
  <P>I=E2=80=99ve never really had much of a problem using Windows as a =
development=20
  enviroment. I use Vista at work and OS X at home.</P>
  <P>I never really got along with e editor, so I use Intype=20
  (http://www.intype.info). Although the Intype project is far from =
being=20
  finished, it=E2=80=99s my full time editor on windows.</P>
  <P>Give the latest unstable release a whirl: <A=20
  =
href=3D"http://intype.info/forums/discussion/484/how-to-get-unstable-rele=
ases/#Item_0"=20
  =
rel=3Dnofollow>http://intype.info/forums/discussion/484/how-to-get-unstab=
le-releases/#Item_0</A></P>
  <P>The main reason I moved over to a mac was because I =
couldn=E2=80=99t find any=20
  background process plugins that worked on rails.</P>
  <P>I still think you can develop without many problems on windows, =
though.</P>
  <P class=3Dcomment-meta><SMALL>Posted on <A title=3D""=20
  =
href=3D"http://www.mattpolito.info/2008/04/07/rails-development-on-window=
s/#comment-16">April=20
  10th, 2008 at 2:44 am</A></SMALL></P>
  <LI class=3D" " id=3Dcomment-17>
  <P class=3Dcomment-meta><SPAN class=3Dcomment-author><STRONG><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/www.soleone.de');"=20
  href=3D"http://www.soleone.de/" rel=3D"external nofollow">Soleone</A>=20
  Says</STRONG>:</SPAN> </P>
  <P>Thanks, good stuff!</P>
  <P>One minor typo:<BR>gem install rails =E2=80=93include-dependencies =
(with 2=20
  dashes)</P>
  <P class=3Dcomment-meta><SMALL>Posted on <A title=3D""=20
  =
href=3D"http://www.mattpolito.info/2008/04/07/rails-development-on-window=
s/#comment-17">April=20
  10th, 2008 at 3:02 am</A></SMALL></P>
  <LI class=3D"alt " id=3Dcomment-18>
  <P class=3Dcomment-meta><SPAN class=3Dcomment-author><STRONG><A=20
  href=3D"http://www.mattpolito.info/" rel=3D"external nofollow">Matt =
Polito</A>=20
  Says</STRONG>:</SPAN> </P>
  <P>@ Jim Neath</P>
  <P>I haven=E2=80=99t really had trouble developing in Windows =
either=E2=80=A6 that=E2=80=99s why I=20
  wanted to write this article to help the community understand that =
it=E2=80=99s not a=20
  =E2=80=98Mac=E2=80=99 thing.</P>
  <P>Also, I=E2=80=99ve tried Intype in the past and liked it, because =
it was very=20
  alpha=E2=80=A6 I stopped using it. I heard that it=E2=80=99s been =
redesigned several times=20
  since the last time I used it.</P>
  <P>E is getting updated VERY frequently so you might want to give it a =
go=20
  again. Especially with Dr Nic=E2=80=99s new <A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/github.com');"=20
  href=3D"http://github.com/drnic/ruby-on-rails-tmbundle/" =
rel=3Dnofollow>Ruby on=20
  Rails bundle</A>.</P>
  <P class=3Dcomment-meta><SMALL>Posted on <A title=3D""=20
  =
href=3D"http://www.mattpolito.info/2008/04/07/rails-development-on-window=
s/#comment-18">April=20
  10th, 2008 at 6:53 am</A></SMALL></P>
  <LI class=3D" " id=3Dcomment-19>
  <P class=3Dcomment-meta><SPAN class=3Dcomment-author><STRONG><A=20
  href=3D"http://www.mattpolito.info/" rel=3D"external nofollow">Matt =
Polito</A>=20
  Says</STRONG>:</SPAN> </P>
  <P>@ Soleone<BR><BR>Thanks=E2=80=A6 I=E2=80=99ll make that change</P>
  <P class=3Dcomment-meta><SMALL>Posted on <A title=3D""=20
  =
href=3D"http://www.mattpolito.info/2008/04/07/rails-development-on-window=
s/#comment-19">April=20
  10th, 2008 at 6:54 am</A></SMALL></P>
  <LI class=3D"alt " id=3Dcomment-20>
  <P class=3Dcomment-meta><SPAN class=3Dcomment-author><STRONG><A=20
  onclick=3D"javascript:pageTracker._trackPageview =
('/outbound/seth.chisamore.com');"=20
  href=3D"http://seth.chisamore.com/" rel=3D"external nofollow">Seth =
Chisamore</A>=20
  Says</STRONG>:</SPAN> </P>
  <P>Just as a note=E2=80=A6if anyone wants to use sqlite3 instead of =
mysql make sure=20
  you install the libsqlite3 cygwin package and the sqlite3-ruby =
gem:</P>
  <P>gem install sqlite3-ruby</P>
  <P class=3Dcomment-meta><SMALL>Posted on <A title=3D""=20
  =
href=3D"http://www.mattpolito.info/2008/04/07/rails-development-on-window=
s/#comment-20">April=20
  10th, 2008 at 12:33 pm</A></SMALL></P>
  <LI class=3D" " id=3Dcomment-21>
  <P class=3Dcomment-meta><SPAN class=3Dcomment-author><STRONG><A=20
  href=3D"http://www.mattpolito.info/" rel=3D"external nofollow">Matt =
Polito</A>=20
  Says</STRONG>:</SPAN> </P>
  <P>@Seth<BR>I personally have been using sqlite3 but have been having =
trouble=20
  with it as of late. That=E2=80=99s why I didn=E2=80=99t include it in =
this tutorial. I would=20
  assume that I=E2=80=99m the only one having this trouble but to avoid =
it in the=20
  article I just left it out for now. But it is the easier way to =
go.</P>
  <P>Maybe the readers can help! Everytime I use add_column and do a=20
  rake:db:migrate=E2=80=A6 I get a SQL error. The error seems to pertain =
to the VACUUM.=20
  Anyone know what=E2=80=99s going on?</P>
  <P class=3Dcomment-meta><SMALL>Posted on <A title=3D""=20
  =
href=3D"http://www.mattpolito.info/2008/04/07/rails-development-on-window=
s/#comment-21">April=20
  10th, 2008 at 12:41 pm</A></SMALL></P>
  <LI class=3D"alt " id=3Dcomment-22>
  <P class=3Dcomment-meta><SPAN class=3Dcomment-author><STRONG>jtorres=20
  Says</STRONG>:</SPAN> </P>
  <P>gem install sqlite3-ruby<BR>Just works.</P>
  <P>gem install mysql-ruby:<BR>ERROR: could not find mysql-ruby locally =
or in a=20
  repository</P>
  <P class=3Dcomment-meta><SMALL>Posted on <A title=3D""=20
  =
href=3D"http://www.mattpolito.info/2008/04/07/rails-development-on-window=
s/#comment-22">April=20
  11th, 2008 at 7:30 pm</A></SMALL></P>
  <LI class=3D" " id=3Dcomment-23>
  <P class=3Dcomment-meta><SPAN class=3Dcomment-author><STRONG><A=20
  href=3D"http://www.mattpolito.info/" rel=3D"external nofollow">Matt =
Polito</A>=20
  Says</STRONG>:</SPAN> </P>
  <P>@jtorres<BR>Thanks for the heads up. Seems that it=E2=80=99s just =
called mysql now.=20
  </P>
  <P>gem install mysql</P>
  <P class=3Dcomment-meta><SMALL>Posted on <A title=3D""=20
  =
href=3D"http://www.mattpolito.info/2008/04/07/rails-development-on-window=
s/#comment-23">April=20
  11th, 2008 at 9:44 pm</A></SMALL></P></LI></OL>
<DIV id=3Drespond>
<H3>Leave a Reply</H3>
<FORM id=3Dcommentform =
action=3Dhttp://www.mattpolito.info/wp-comments-post.php=20
method=3Dpost>
<P><SMALL><LABEL for=3Dauthor>Name <SPAN=20
class=3Drequired>(required)</SPAN></LABEL></SMALL><BR><INPUT id=3Dauthor =
tabIndex=3D1=20
size=3D25 name=3Dauthor></P>
<P><SMALL><LABEL for=3Demail>Mail (will not be published) <SPAN=20
class=3Drequired>(required)</SPAN></LABEL></SMALL><BR><INPUT id=3Demail =
tabIndex=3D2=20
size=3D25 name=3Demail></P>
<P><SMALL><LABEL for=3Durl>Website</LABEL></SMALL><BR><INPUT id=3Durl =
tabIndex=3D3=20
size=3D25 name=3Durl></P>
<P><TEXTAREA id=3Dcomment tabIndex=3D4 name=3Dcomment rows=3D15 =
cols=3D50></TEXTAREA></P>
<P><INPUT id=3Dsubmit tabIndex=3D5 type=3Dsubmit value=3D"Submit =
Comment" name=3Dsubmit>=20
<INPUT type=3Dhidden value=3D55 name=3Dcomment_post_ID> =
</P></FORM></DIV><!-- #respond --></DIV></DIV>
<DIV class=3Dsidebar id=3Dprimary>
<UL>
  <LI id=3Dcategories>
  <H3>Categories</H3>
  <UL>
    <LI class=3D"cat-item cat-item-3"><A title=3D"View all posts filed =
under Book"=20
    href=3D"http://www.mattpolito.info/category/book/">Book</A>=20
    <LI class=3D"cat-item cat-item-4"><A=20
    title=3D"View all posts filed under Computers"=20
    =
href=3D"http://www.mattpolito.info/category/computers/">Computers</A>=20
    <LI class=3D"cat-item cat-item-5"><A title=3D"View all posts filed =
under Design"=20
    href=3D"http://www.mattpolito.info/category/design/">Design</A>=20
    <LI class=3D"cat-item cat-item-6"><A title=3D"View all posts filed =
under Gaming"=20
    href=3D"http://www.mattpolito.info/category/gaming/">Gaming</A>=20
    <LI class=3D"cat-item cat-item-7"><A title=3D"View all posts filed =
under Music"=20
    href=3D"http://www.mattpolito.info/category/music/">Music</A>=20
    <LI class=3D"cat-item cat-item-8"><A=20
    title=3D"View all posts filed under Personal"=20
    href=3D"http://www.mattpolito.info/category/personal/">Personal</A>=20
    <LI class=3D"cat-item cat-item-9"><A=20
    title=3D"View all posts filed under Programming"=20
    =
href=3D"http://www.mattpolito.info/category/programming/">Programming</A>=
=20
    <LI class=3D"cat-item cat-item-10"><A=20
    title=3D"View all posts filed under School"=20
    href=3D"http://www.mattpolito.info/category/school/">School</A>=20
    <LI class=3D"cat-item cat-item-11"><A=20
    title=3D"View all posts filed under Tutorial"=20
    href=3D"http://www.mattpolito.info/category/tutorial/">Tutorial</A>=20
    <LI class=3D"cat-item cat-item-12"><A title=3D"View all posts filed =
under Video"=20
    href=3D"http://www.mattpolito.info/category/video/">Video</A> =
</LI></UL>
  <LI id=3Darchives>
  <H3>Archives</H3>
  <UL>
    <LI><A title=3D"April 2008" =
href=3D"http://www.mattpolito.info/2008/04/">April=20
    2008</A>=20
    <LI><A title=3D"March 2008" =
href=3D"http://www.mattpolito.info/2008/03/">March=20
    2008</A>=20
    <LI><A title=3D"February 2008"=20
    href=3D"http://www.mattpolito.info/2008/02/">February 2008</A>=20
    <LI><A title=3D"January 2008"=20
    href=3D"http://www.mattpolito.info/2008/01/">January 2008</A>=20
    <LI><A title=3D"December 2007"=20
    href=3D"http://www.mattpolito.info/2007/12/">December 2007</A>=20
    <LI><A title=3D"November 2007"=20
    href=3D"http://www.mattpolito.info/2007/11/">November 2007</A>=20
    <LI><A title=3D"October 2007"=20
    href=3D"http://www.mattpolito.info/2007/10/">October 2007</A>=20
    <LI><A title=3D"September 2007"=20
    href=3D"http://www.mattpolito.info/2007/09/">September 2007</A>=20
    <LI><A title=3D"August 2007" =
href=3D"http://www.mattpolito.info/2007/08/">August=20
    2007</A>=20
    <LI><A title=3D"July 2007" =
href=3D"http://www.mattpolito.info/2007/07/">July=20
    2007</A>=20
    <LI><A title=3D"May 2007" =
href=3D"http://www.mattpolito.info/2007/05/">May=20
    2007</A> </LI></UL></LI></UL></DIV>
<DIV class=3Dclear></DIV>
<DIV class=3Dbottom></DIV></DIV>
<DIV class=3Dsidebar id=3Dsecondary>
<UL>
  <LI id=3Drss-links>
  <H3>RSS Feeds</H3>
  <UL>
    <LI><A title=3D"Posts RSS feed" =
href=3D"http://www.mattpolito.info/feed/"=20
    type=3Dapplication/rss+xml rel=3Dalternate>Posts Feed</A>=20
    <LI><A title=3D"Comments RSS feed"=20
    href=3D"http://www.mattpolito.info/comments/feed/" =
type=3Dapplication/rss+xml=20
    rel=3Dalternate>Comments Feed</A> </LI></UL>
  <LI class=3Dlinkcat id=3Dlinkcat-2>
  <H3>Blogroll</H3>
  <UL>
    <LI><A href=3D"http://www.ar2online.com/" rel=3D"friend met =
co-worker">Andrew=20
    Hoinacki</A>=20
    <LI><A href=3D"http://www.chicagoruby.org/">Chicago Ruby</A>=20
    <LI><A =
href=3D"http://www.facebook.com/people/Matthew_Polito/724480284"=20
    rel=3Dme>Facebook</A>=20
    <LI><A href=3D"http://www.linkedin.com/in/matthewpolito" =
rel=3Dme>LinkedIn</A>=20
    <LI><A href=3D"http://www.reactioncontrol.com/" =
rel=3Dme>reactionCONTROL</A>=20
    <LI><A href=3D"http://www.godsdominion.com/"=20
    rel=3D"friend met co-worker">Roberto Almeida</A>=20
    <LI><A =
href=3D"http://www.workingwithrails.com/person/7465-matt-polito"=20
    rel=3Dme>Working with Rails</A> </LI></UL>
  <LI id=3Dmeta>
  <H3>Meta</H3>
  <UL>
    <LI><A href=3D"http://www.mattpolito.info/wp-login.php">Log in</A>=20
  </LI></UL></LI></UL></DIV></DIV>
<DIV id=3Dfooter>
<P>=C2=A9 Matt-O-Matic 3000. Using <A=20
href=3D"http://www.wpdesigner.com/2008/01/30/personal-wordpress-theme/">P=
ersonal</A>=20
by Wpdesigner.</P></DIV><!-- Google Analytics Tracking by Google =
Analyticator: http://cavemonkey50.com/code/google-analyticator/ -->
<SCRIPT type=3Dtext/javascript>=0A=
		var gaJsHost =3D (("https:" =3D=3D document.location.protocol) ? =
"https://ssl." : "http://www.");=0A=
		document.write(unescape("%3Cscript src=3D'" + gaJsHost + =
"google-analytics.com/ga.js' type=3D'text/javascript'%3E%3C/script%3E"));=0A=
	</SCRIPT>

<SCRIPT type=3Dtext/javascript>=0A=
		var pageTracker =3D _gat._getTracker("UA-51098-11");=0A=
		pageTracker._initData();=0A=
		pageTracker._trackPageview();=0A=
	</SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shCore.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushCSharp.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushPhp.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushJScript.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushJava.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushVb.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushSql.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushXml.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushDelphi.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushPython.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushRuby.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushCss.js"></SCRIPT>

<SCRIPT class=3Djavascript=20
src=3D"http://www.mattpolito.info/wp-content/plugins/google-syntax-highli=
ghter/Scripts/shBrushCpp.js"></SCRIPT>

<SCRIPT class=3Djavascript>=0A=
dp.SyntaxHighlighter.ClipboardSwf =3D =
'http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/=
Scripts/clipboard.swf';=0A=
dp.SyntaxHighlighter.HighlightAll('code');=0A=
</SCRIPT>
</DIV></BODY></HTML>

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.mattpolito.info/wp-content/themes/personal/images/bg-search-button.gif

R0lGODlhFAAaANUAAAAxRgANEgBIaAAZJAAdKgAPFQAEBgAUHQAvRQApOwAbJwAGCApObQAySAA1
TQA1TAACAgABAQAzSgE3UARKagBBXQdMbAQ+WQRJaQZLawA3TwBBXwVEYAA0SwBAXgpLaQhHYwJI
aQA7VwZDXwdFYwE2TgQ+WAA+WgI5UghMbABFZAI7VAE7VQI6UwVBXAA5UwA1TgM7VQxPbgAwRgBI
aQBJagBHaP///wAAAAA2TgAAAAAAAAAAAAAAAAAAAAAAACH5BAAAAAAALAAAAAAUABoAAAbJwJlw
SJw5XpuacplrOp+5R6cBUy1r0Kzz0TgxtWCJSAkuSzzYZkJRWEQWBUUiW6LlEAMDbs/HGQYITw4V
AAd9h3sHAE8sBHw3kHuRewRPEwGSfTeZOAFQEJmRmzijEFCYpKGcnk4TjpKTkziVTi2FiIeKTyZ3
ebh/gU8cTmttb3FzUCgYZWUkNs1aLhQC0U8aIxY2dtY5MR8ZNtvRKxcgDCHiAjUy7e7vMgwpFOLi
NDX1+fr69/j7//aWANy37gqNgwgRqjt4RUkQADs=

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/2008/04/07/rails-development-on-windows/style-basics.css

BLOCKQUOTE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
BODY {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
CAPTION {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
DD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
DL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
FORM {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H2 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H3 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H4 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H5 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
H6 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
INPUT {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
PRE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
TEXTAREA {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
TABLE {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
TD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
TH {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px
}
BODY {
	FONT: 12px arial, helvetica, verdana, sans-serif; COLOR: #000
}
FORM {
	FONT: 12px arial, helvetica, verdana, sans-serif; COLOR: #000
}
H1 {
	FONT: 12px arial, helvetica, verdana, sans-serif; COLOR: #000
}
H2 {
	FONT: 12px arial, helvetica, verdana, sans-serif; COLOR: #000
}
H3 {
	FONT: 12px arial, helvetica, verdana, sans-serif; COLOR: #000
}
H4 {
	FONT: 12px arial, helvetica, verdana, sans-serif; COLOR: #000
}
H5 {
	FONT: 12px arial, helvetica, verdana, sans-serif; COLOR: #000
}
H6 {
	FONT: 12px arial, helvetica, verdana, sans-serif; COLOR: #000
}
INPUT {
	FONT: 12px arial, helvetica, verdana, sans-serif; COLOR: #000
}
TEXTAREA {
	FONT: 12px arial, helvetica, verdana, sans-serif; COLOR: #000
}
TABLE {
	FONT: 12px arial, helvetica, verdana, sans-serif; COLOR: #000
}
BODY {
	BACKGROUND: url(images/bg-body.gif) #ece8c5 repeat-x; TEXT-ALIGN: =
center
}
A {
	COLOR: #0497b1; TEXT-DECORATION: none
}
A:hover {
	TEXT-DECORATION: underline
}
A IMG {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
BLOCKQUOTE {
	BACKGROUND: #f9f9f9; MARGIN: 10px 0px 0px
}
BLOCKQUOTE P {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
BLOCKQUOTE BLOCKQUOTE {
	BACKGROUND: #fff; MARGIN: 0px 10px
}
IMG.alignleft {
	MARGIN: 5px 10px 2px 0px
}
IMG.alignright {
	MARGIN: 5px 0px 2px 10px
}
IMG.alignleft {
	BORDER-RIGHT: #f2f1e9 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: =
#f2f1e9 1px solid; DISPLAY: inline; PADDING-LEFT: 4px; PADDING-BOTTOM: =
4px; BORDER-LEFT: #f2f1e9 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: =
#f2f1e9 1px solid
}
IMG.alignright {
	BORDER-RIGHT: #f2f1e9 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: =
#f2f1e9 1px solid; DISPLAY: inline; PADDING-LEFT: 4px; PADDING-BOTTOM: =
4px; BORDER-LEFT: #f2f1e9 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: =
#f2f1e9 1px solid
}
IMG.centered {
	DISPLAY: block; MARGIN-LEFT: auto; MARGIN-RIGHT: auto
}
P IMG {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; FLOAT: right; MAX-WIDTH: 100%; =
PADDING-BOTTOM: 5px; MARGIN: 5px; ; WIDTH: expression(this.width > 480 ? =
480: true); PADDING-TOP: 5px
}
P {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
SMALL {
	FONT-SIZE: 11px
}
.alignleft {
	FLOAT: left
}
.alignright {
	FLOAT: right
}
.clear {
	CLEAR: both; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; MARGIN: 0px; PADDING-TOP: 0px
}
#wrapper {
	MARGIN: 0px auto; WIDTH: 890px; TEXT-ALIGN: left
}

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/2008/04/07/rails-development-on-windows/style-header.css

#header {
	BACKGROUND: url(images/bg-header.gif) no-repeat; FLOAT: left; MARGIN: =
20px 0px 0px; OVERFLOW: hidden; WIDTH: 890px; HEIGHT: 87px
}
#header H1 {
	PADDING-RIGHT: 0px; DISPLAY: inline; PADDING-LEFT: 34px; BACKGROUND: =
url(images/logo.gif) no-repeat; FLOAT: left; PADDING-BOTTOM: 0px; =
MARGIN: 31px 0px 0px 35px; FONT: bold 24px georgia, "Trebuchet MS", =
serif; TEXT-TRANSFORM: uppercase; PADDING-TOP: 3px
}
#header H1 A {
	COLOR: #d5fef8
}
#search {
	DISPLAY: inline; FLOAT: left; MARGIN: 38px 0px 0px 30px
}
#search FORM#searchform {
	BACKGROUND: url(images/bg-search-form.gif) repeat-x; FLOAT: left; =
WIDTH: 260px
}
#search FORM#searchform INPUT {
	FONT: 11px arial, helvetica, sans-serif; COLOR: #fff
}
#search FORM#searchform .keyword {
	BACKGROUND: url(images/bg-search-input.gif) no-repeat; FLOAT: left; =
HEIGHT: 26px
}
#search FORM#searchform .keyword INPUT#s {
	BORDER-TOP-WIDTH: 0px; DISPLAY: inline; BORDER-LEFT-WIDTH: 0px; FLOAT: =
left; BORDER-BOTTOM-WIDTH: 0px; MARGIN: 3px 0px 0px 10px; =
BACKGROUND-COLOR: transparent; BORDER-RIGHT-WIDTH: 0px
}
#search FORM#searchform .go {
	FLOAT: right
}

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/2008/04/07/rails-development-on-windows/style-typography.css

P.alert {
	PADDING-RIGHT: 10px; PADDING-LEFT: 36px; PADDING-BOTTOM: 10px; MARGIN: =
10px 0px 0px; PADDING-TOP: 10px
}
P.download {
	PADDING-RIGHT: 10px; PADDING-LEFT: 36px; PADDING-BOTTOM: 10px; MARGIN: =
10px 0px 0px; PADDING-TOP: 10px
}
P.info {
	PADDING-RIGHT: 10px; PADDING-LEFT: 36px; PADDING-BOTTOM: 10px; MARGIN: =
10px 0px 0px; PADDING-TOP: 10px
}
P.note {
	PADDING-RIGHT: 10px; PADDING-LEFT: 36px; PADDING-BOTTOM: 10px; MARGIN: =
10px 0px 0px; PADDING-TOP: 10px
}
P.alert {
	PADDING-RIGHT: 10px; BORDER-TOP: #f0baa2 2px solid; PADDING-LEFT: 36px; =
BACKGROUND: url(images/alert.png) #ffd9c8 no-repeat 12px 16px; =
PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BORDER-BOTTOM: #f0baa2 2px =
solid
}
P.download {
	BORDER-TOP: #d4ebaf 2px solid; BACKGROUND: url(images/download.png) =
#edfcd5 no-repeat 10px 16px; BORDER-BOTTOM: #d4ebaf 2px solid
}
P.info {
	BORDER-TOP: #eee 2px solid; BACKGROUND: url(images/info.png) #f9f9f9 =
no-repeat 12px 16px; BORDER-BOTTOM: #eee 2px solid
}
P.note {
	BORDER-TOP: #efe3ae 2px solid; BACKGROUND: url(images/note.png) #fef6d2 =
no-repeat 14px 16px; BORDER-BOTTOM: #efe3ae 2px solid
}

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/2008/04/07/rails-development-on-windows/style-sidebar.css

.sidebar {
	FLOAT: left; WIDTH: 160px
}
.sidebar UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
.sidebar UL LI {
	MARGIN: 10px 0px 0px
}
.sidebar UL LI H3 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 6px; FONT: =
bold 12px georgia, serif; TEXT-TRANSFORM: uppercase; COLOR: #735593; =
PADDING-TOP: 8px; BORDER-BOTTOM: #eee 1px solid
}
.sidebar UL UL {
	LINE-HEIGHT: 22px
}
.sidebar UL UL LI {
	PADDING-RIGHT: 10px; PADDING-LEFT: 28px; BACKGROUND: url(images/x.gif) =
no-repeat 10px 10px; PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 4px; =
BORDER-BOTTOM: #eee 1px solid
}
.sidebar UL UL UL LI {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 10px; =
BORDER-LEFT-WIDTH: 0px; BACKGROUND-IMAGE: none; BORDER-BOTTOM-WIDTH: =
0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px
}
#primary {
	MARGIN: 22px 0px 0px
}
#secondary {
	MARGIN: 69px 0px 0px; WIDTH: 170px; COLOR: #59a3c3
}
#secondary A {
	COLOR: #aee4fc
}
#secondary UL LI {
	MARGIN: 0px 0px 20px
}
#secondary UL LI H3 {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 10px; PADDING-LEFT: 20px; =
BORDER-LEFT-WIDTH: 0px; BACKGROUND: url(images/bg-sidebar-title.gif) =
no-repeat; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 6px; COLOR: =
#d5fef8; PADDING-TOP: 8px; BORDER-RIGHT-WIDTH: 0px
}
#secondary UL UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
#secondary UL UL LI {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; BACKGROUND-IMAGE: none; =
PADDING-BOTTOM: 3px; MARGIN: 0px; PADDING-TOP: 4px; BORDER-BOTTOM: =
#003a55 1px solid
}
#secondary UL UL UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
#secondary UL UL UL LI {
	BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: 0px; =
BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 0px; BORDER-RIGHT-WIDTH: 0px
}

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/2008/04/07/rails-development-on-windows/style-widgets.css

.sidebar LI#search {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; BACKGROUND-IMAGE: =
none; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; COLOR: #000; =
PADDING-TOP: 0px
}
.sidebar LI#search FORM#searchform {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; BACKGROUND-IMAGE: =
none; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; COLOR: #000; =
PADDING-TOP: 0px
}
.sidebar LI#search FORM#searchform INPUT {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: none; BACKGROUND-IMAGE: =
none; PADDING-BOTTOM: 0px; MARGIN: 0px; WIDTH: auto; COLOR: #000; =
PADDING-TOP: 0px
}
.sidebar UL LI.widget_rss H3 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; BACKGROUND-IMAGE: none; =
PADDING-BOTTOM: 6px; PADDING-TOP: 8px
}
.sidebar UL LI.widget_rss H3 IMG {
	WIDTH: 9px; HEIGHT: 9px
}
.sidebar UL LI.widget_tag_cloud H3 {
	MARGIN: 0px 0px 10px
}
.sidebar UL LI.widget_tag_cloud A {
	PADDING-RIGHT: 0px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
#wp-calendar {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; WIDTH: =
100%; PADDING-TOP: 0px; BORDER-BOTTOM: #f2f1e9 1px solid
}
#secondary #wp-calendar {
	COLOR: #59a3c3; BORDER-BOTTOM: #003a55 1px solid
}
#wp-calendar CAPTION {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
#wp-calendar TH {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #f9f9f9; =
PADDING-BOTTOM: 5px; PADDING-TOP: 5px; TEXT-ALIGN: center
}
#wp-calendar TD {
	PADDING-RIGHT: 5px; PADDING-LEFT: 5px; BACKGROUND: #f9f9f9; =
PADDING-BOTTOM: 5px; PADDING-TOP: 5px; TEXT-ALIGN: center
}
#wp-calendar TD {
	BACKGROUND: none transparent scroll repeat 0% 0%
}
#secondary #wp-calendar TH {
	BACKGROUND: #003148
}
#secondary #wp-calendar TD {
	BACKGROUND: #003148
}
#secondary #wp-calendar TD {
	BACKGROUND: none transparent scroll repeat 0% 0%
}
#wp-calendar TD {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}
TABLE#wp-calendar TH {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 3px; =
PADDING-TOP: 3px
}

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/2008/04/07/rails-development-on-windows/style-comments.css

#comments {
	MARGIN: 15px 0px 0px
}
#respond {
	MARGIN: 15px 0px 0px
}
#comments H3 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 7px; FONT: =
18px georgia, "trebuchet ms", serif; TEXT-TRANSFORM: uppercase; COLOR: =
#666; PADDING-TOP: 0px; BORDER-BOTTOM: #f2f1e9 1px solid
}
#comments OL.commentlist {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
#comments OL.commentlist LI {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 3px; =
LINE-HEIGHT: 22px; PADDING-TOP: 4px; BORDER-BOTTOM: #f2f1e9 1px solid
}
#comments OL.commentlist LI.highlighted {
	BACKGROUND: #f9f9f9
}
#comments .required {
	COLOR: #a00
}
#comments TEXTAREA {
	WIDTH: 75%
}
#comments P.nocomments {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 0px
}
#respond FORM {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 0px
}
#comments P#login-req {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 20px
}
P.comment_license {
	LINE-HEIGHT: 22px
}

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/themes/personal/style.css

@import url( style-basics.css );
@import url( style-header.css );
@import url( style-typography.css );
@import url( style-sidebar.css );
@import url( style-widgets.css );
@import url( style-comments.css );
.container {
	FLOAT: left
}
.outter {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; BACKGROUND: =
url(images/bg-container-outter.gif) #00496a no-repeat left bottom; =
PADDING-BOTTOM: 10px; WIDTH: 890px; PADDING-TOP: 0px
}
.inner {
	DISPLAY: inline; BACKGROUND: url(images/bg-container-inner.gif) =
repeat-y; MARGIN: 0px 0px 0px 10px; WIDTH: 700px
}
.inner .top {
	FONT-SIZE: 1px; BACKGROUND: url(images/bg-container-inner-top.gif) =
no-repeat; FLOAT: left; WIDTH: 700px; HEIGHT: 10px
}
.inner .bottom {
	FONT-SIZE: 1px; BACKGROUND: url(images/bg-container-inner-top.gif) =
no-repeat; FLOAT: left; WIDTH: 700px; HEIGHT: 10px
}
.inner .bottom {
	BACKGROUND: url(images/bg-container-inner-bottom.gif) no-repeat
}
#content {
	DISPLAY: inline; FLOAT: left; MARGIN: 16px 10px 0px 15px; WIDTH: 500px
}
#menu {
	BACKGROUND: url(images/bg-menu.gif) no-repeat; FLOAT: left; OVERFLOW: =
hidden; WIDTH: 700px
}
#menu UL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; LIST-STYLE-TYPE: none
}
#menu UL LI {
	FLOAT: left
}
#menu UL LI A {
	PADDING-RIGHT: 20px; DISPLAY: block; PADDING-LEFT: 22px; BACKGROUND: =
url(images/bg-menu-li-a.gif) no-repeat right top; PADDING-BOTTOM: 12px; =
COLOR: #fff; PADDING-TOP: 12px
}
#menu UL LI A SPAN.feed {
	PADDING-RIGHT: 18px; PADDING-LEFT: 0px; BACKGROUND: =
url(images/feed.gif) no-repeat right 3px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 0px
}
#headimg {
=09
}
.ads-468x60 IMG {
	DISPLAY: inline; MARGIN: 0px 10px 16px
}
.post {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 16px; WIDTH: =
500px; PADDING-TOP: 0px; POSITION: relative
}
.post H2 {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; FONT: =
18px georgia, "trebuchet ms", serif; TEXT-TRANSFORM: uppercase; =
PADDING-TOP: 0px
}
.post H2 A {
	COLOR: #bf4d01
}
.entry-date {
	DISPLAY: inline; BACKGROUND: url(images/bg-entry-date.gif) #001a26 =
no-repeat; MARGIN: 0px 0px 0px -75px; FONT: bold 11px uppercase georgia, =
serif; TEXT-TRANSFORM: uppercase; WIDTH: 65px; COLOR: #fff; POSITION: =
absolute; TOP: 62px; HEIGHT: 44px
}
.comments-link {
	DISPLAY: inline; BACKGROUND: url(images/bg-entry-date.gif) #001a26 =
no-repeat; MARGIN: 0px 0px 0px -75px; FONT: bold 11px uppercase georgia, =
serif; TEXT-TRANSFORM: uppercase; WIDTH: 65px; COLOR: #fff; POSITION: =
absolute; TOP: 62px; HEIGHT: 44px
}
.entry-date SPAN {
	DISPLAY: block; TEXT-ALIGN: center
}
.comments-link SPAN {
	DISPLAY: block; TEXT-ALIGN: center
}
.entry-date SPAN.month {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; =
PADDING-TOP: 8px
}
.comments-link {
	BACKGROUND: url(images/bg-comments-link.gif) #240e29 no-repeat; TOP: =
109px; HEIGHT: 81px
}
.comments-link SPAN {
	DISPLAY: block; MARGIN: 15px 0px 0px; OVERFLOW: hidden; WIDTH: 65px; =
HEIGHT: 29px
}
.comments-link A {
	COLOR: #fff
}
.entry-meta {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 11px; BACKGROUND: =
url(images/dotted.gif) repeat-x left bottom; PADDING-BOTTOM: 8px; COLOR: =
#666; PADDING-TOP: 3px
}
.entry-content {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; =
LINE-HEIGHT: 22px; PADDING-TOP: 0px
}
.entry-content P A {
	BACKGROUND: #ffff99; COLOR: #000; BORDER-BOTTOM: #ddd 1px solid
}
.entry-content P A:hover {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px; TEXT-DECORATION: none
}
.entry-content H2 {
	FONT: bold 24px/28px arial, helvetica, sans-serif; TEXT-TRANSFORM: none
}
.entry-content H3 {
	FONT-WEIGHT: bold; FONT-SIZE: 18px; LINE-HEIGHT: 24px
}
.entry-content H4 {
	FONT-WEIGHT: bold; FONT-SIZE: 14px; LINE-HEIGHT: 20px
}
.entry-content H5 {
	FONT-SIZE: 11px; LINE-HEIGHT: 16px
}
.entry-content H6 {
	FONT-SIZE: 10px; LINE-HEIGHT: 14px
}
.entry-content H1 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
.entry-content H2 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
.entry-content H3 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
.entry-content H4 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
.entry-content H5 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
.entry-content H6 {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}
.entry-foot {
	PADDING-RIGHT: 10px; BORDER-TOP: #eee 1px solid; PADDING-LEFT: 10px; =
BACKGROUND: #f9f9f9; PADDING-BOTTOM: 3px; LINE-HEIGHT: 22px; =
PADDING-TOP: 4px; BORDER-BOTTOM: #eee 1px solid
}
.navigation {
	DISPLAY: inline; FLOAT: left; MARGIN: 0px 0px 12px; WIDTH: 500px
}
.navigation SPAN.nav-previous {
	PADDING-RIGHT: 0px; PADDING-LEFT: 16px; BACKGROUND: =
url(images/bg-older-posts.gif) no-repeat 0px 3px; PADDING-BOTTOM: 0px; =
MARGIN: 0px 0px 0px 10px; PADDING-TOP: 0px
}
.navigation SPAN.nav-next {
	PADDING-RIGHT: 16px; PADDING-LEFT: 16px; BACKGROUND: =
url(images/bg-newer-posts.gif) no-repeat right 3px; PADDING-BOTTOM: 0px; =
MARGIN: 0px 10px; PADDING-TOP: 0px
}
#footer {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; FLOAT: left; PADDING-BOTTOM: =
10px; WIDTH: 890px; COLOR: #74715b; PADDING-TOP: 10px
}
#footer A {
	COLOR: #55523d
}
#footer P {
	PADDING-RIGHT: 35px; PADDING-LEFT: 35px; PADDING-BOTTOM: 10px; =
PADDING-TOP: 10px
}

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: text/css;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Styles/SyntaxHighlighter.css

.dp-highlighter {
	FONT-SIZE: 12px; MARGIN: 18px 0px; OVERFLOW: auto; WIDTH: 99%; =
PADDING-TOP: 1px; FONT-FAMILY: "Consolas", "Courier New", Courier, mono; =
BACKGROUND-COLOR: #e7e5dc
}
.dp-highlighter .bar {
	PADDING-LEFT: 45px
}
.collapsed.dp-highlighter .bar {
	PADDING-LEFT: 0px
}
.nogutter.dp-highlighter .bar {
	PADDING-LEFT: 0px
}
.dp-highlighter OL {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px =
0px 1px 45px; COLOR: #5c5c5c; PADDING-TOP: 0px; LIST-STYLE-TYPE: =
decimal; BACKGROUND-COLOR: #fff
}
.nogutter.dp-highlighter OL {
	MARGIN-LEFT: 0px; LIST-STYLE-TYPE: none! important
}
.dp-highlighter OL LI {
	PADDING-LEFT: 10px; BORDER-LEFT: #6ce26c 3px solid; LINE-HEIGHT: 14px; =
BACKGROUND-COLOR: #f8f8f8
}
.dp-highlighter .columns DIV {
	PADDING-LEFT: 10px; BORDER-LEFT: #6ce26c 3px solid; LINE-HEIGHT: 14px; =
BACKGROUND-COLOR: #f8f8f8
}
.nogutter.dp-highlighter OL LI {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
.nogutter.dp-highlighter .columns DIV {
	BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: =
0px; BORDER-RIGHT-WIDTH: 0px
}
.dp-highlighter .columns {
	OVERFLOW: hidden; WIDTH: 100%; COLOR: gray
}
.dp-highlighter .columns DIV {
	PADDING-BOTTOM: 5px
}
.dp-highlighter OL LI.alt {
	BACKGROUND-COLOR: #fff
}
.dp-highlighter OL LI SPAN {
	COLOR: black
}
.collapsed.dp-highlighter OL {
	MARGIN: 0px
}
.collapsed.dp-highlighter OL LI {
	DISPLAY: none
}
.printing.dp-highlighter {
	BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: =
none; BORDER-BOTTOM-STYLE: none
}
.printing.dp-highlighter .tools {
	DISPLAY: none! important
}
.printing.dp-highlighter LI {
	DISPLAY: list-item! important
}
.dp-highlighter .tools {
	PADDING-RIGHT: 8px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; FONT: 9px =
Verdana, Geneva, Arial, Helvetica, sans-serif; BORDER-LEFT: #6ce26c 3px =
solid; COLOR: silver; PADDING-TOP: 3px; BACKGROUND-COLOR: #f8f8f8; =
text-align1: right
}
.nogutter.dp-highlighter .tools {
	BORDER-LEFT-WIDTH: 0px
}
.collapsed.dp-highlighter .tools {
	BORDER-BOTTOM-WIDTH: 0px
}
.dp-highlighter .tools A {
	FONT-SIZE: 9px; COLOR: #a0a0a0; MARGIN-RIGHT: 10px; TEXT-DECORATION: =
none
}
.dp-highlighter .tools A:hover {
	COLOR: red; TEXT-DECORATION: underline
}
.dp-about {
	PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: =
0px; PADDING-TOP: 0px; BACKGROUND-COLOR: #fff
}
.dp-about TABLE {
	FONT-SIZE: 11px; WIDTH: 100%; FONT-FAMILY: Tahoma, Verdana, Arial, =
sans-serif! important; HEIGHT: 100%
}
.dp-about TD {
	PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; =
VERTICAL-ALIGN: top; PADDING-TOP: 10px
}
.dp-about .copy {
	BORDER-BOTTOM: #aca899 1px solid; HEIGHT: 95%
}
.dp-about .title {
	FONT-WEIGHT: bold; COLOR: red
}
.dp-about .para {
	MARGIN: 0px 0px 4px
}
.dp-about .footer {
	BORDER-TOP: #fff 1px solid; BACKGROUND-COLOR: #eceadb; TEXT-ALIGN: =
right
}
.dp-about .close {
	FONT-SIZE: 11px; WIDTH: 60px; FONT-FAMILY: Tahoma, Verdana, Arial, =
sans-serif! important; HEIGHT: 22px; BACKGROUND-COLOR: #eceadb
}
.dp-highlighter .comment {
	COLOR: #008200
}
.dp-highlighter .comments {
	COLOR: #008200
}
.dp-highlighter .string {
	COLOR: blue
}
.dp-highlighter .keyword {
	FONT-WEIGHT: bold; COLOR: #069
}
.dp-highlighter .preprocessor {
	COLOR: gray
}

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/octet-stream
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/save-my-pre/save-pre.js?ver=7796

if ('function' =3D=3D typeof wpautop) {=0A=
	old_wpautop =3D wpautop;=0A=
	=0A=
	function safe_autop(output) {=0A=
		if ( output.length =3D=3D 0 ) {=0A=
			return output;=0A=
		}=0A=
		=0A=
		if ( output.indexOf("<pre") =3D=3D -1 ) {=0A=
			return old_wpautop(output);=0A=
		} else if ( output.indexOf("<pre") =3D=3D 0 ) {=0A=
			var pos;=0A=
			var parts =3D new Array();=0A=
			pos =3D output.indexOf("</pre>");=0A=
			parts.push(output.slice(0, pos+6));=0A=
			parts.push(output.slice(pos+6));=0A=
			return parts[0].concat( safe_autop(parts[1]) );=0A=
		} else {=0A=
			var pos;=0A=
			var parts =3D new Array();=0A=
			pos =3D output.indexOf("<pre>");=0A=
			parts.push(output.slice(0, pos));=0A=
			parts.push(output.slice(pos));=0A=
			return safe_autop(parts[0]).concat( safe_autop(parts[1]) );=0A=
		}=0A=
		=0A=
		return output;	=0A=
	}=0A=
	=0A=
	wpautop =3D safe_autop;=0A=
}
------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shCore.js

var =
dp=3D{sh:{Toolbar:{},Utils:{},RegexLib:{},Brushes:{},Strings:{AboutDialog=
:"<html><head><title>About...</title></head><body =
class=3D\"dp-about\"><table cellspacing=3D\"0\"><tr><td =
class=3D\"copy\"><p class=3D\"title\">dp.SyntaxHighlighter</div><div =
class=3D\"para\">Version: {V}</p><p><a =
href=3D\"http://www.dreamprojections.com/syntaxhighlighter/?ref=3Dabout\"=
 =
target=3D\"_blank\">http://www.dreamprojections.com/syntaxhighlighter</a>=
</p>&copy;2004-2007 Alex Gorbatchev.</td></tr><tr><td =
class=3D\"footer\"><input type=3D\"button\" class=3D\"close\" =
value=3D\"OK\" =
onClick=3D\"window.close()\"/></td></tr></table></body></html>"},Clipboar=
dSwf:null,Version:"1.5"}};=0A=
dp.SyntaxHighlighter=3Ddp.sh;=0A=
dp.sh.Toolbar.Commands=3D{ExpandSource:{label:"+ expand =
source",check:function(_1){=0A=
return _1.collapse;=0A=
},func:function(_2,_3){=0A=
_2.parentNode.removeChild(_2);=0A=
_3.div.className=3D_3.div.className.replace("collapsed","");=0A=
}},ViewSource:{label:"view plain",func:function(_4,_5){=0A=
var _6=3D_5.originalCode.replace(/</g,"&lt;");=0A=
var _7=3Dwindow.open("","_blank","width=3D750, height=3D400, =
location=3D0, resizable=3D1, menubar=3D0, scrollbars=3D0");=0A=
_7.document.write("<textarea =
style=3D\"width:99%;height:99%\">"+_6+"</textarea>");=0A=
_7.document.close();=0A=
}},CopyToClipboard:{label:"copy to clipboard",check:function(){=0A=
return window.clipboardData!=3Dnull||dp.sh.ClipboardSwf!=3Dnull;=0A=
},func:function(_8,_9){=0A=
var _a=3D_9.originalCode;=0A=
if(window.clipboardData){=0A=
window.clipboardData.setData("text",_a);=0A=
}else{=0A=
if(dp.sh.ClipboardSwf!=3Dnull){=0A=
var _b=3D_9.flashCopier;=0A=
if(_b=3D=3Dnull){=0A=
_b=3Ddocument.createElement("div");=0A=
_9.flashCopier=3D_b;=0A=
_9.div.appendChild(_b);=0A=
}=0A=
_b.innerHTML=3D"<embed src=3D\""+dp.sh.ClipboardSwf+"\" =
FlashVars=3D\"clipboard=3D"+encodeURIComponent(_a)+"\" width=3D\"0\" =
height=3D\"0\" type=3D\"application/x-shockwave-flash\"></embed>";=0A=
}=0A=
}=0A=
alert("The code is in your clipboard now");=0A=
}},PrintSource:{label:"print",func:function(_c,_d){=0A=
var _e=3Ddocument.createElement("IFRAME");=0A=
var _f=3Dnull;=0A=
_e.style.cssText=3D"position:absolute;width:0px;height:0px;left:-500px;to=
p:-500px;";=0A=
document.body.appendChild(_e);=0A=
_f=3D_e.contentWindow.document;=0A=
dp.sh.Utils.CopyStyles(_f,window.document);=0A=
_f.write("<div class=3D\""+_d.div.className.replace("collapsed","")+" =
printing\">"+_d.div.innerHTML+"</div>");=0A=
_f.close();=0A=
_e.contentWindow.focus();=0A=
_e.contentWindow.print();=0A=
alert("Printing...");=0A=
document.body.removeChild(_e);=0A=
}},About:{label:"?",func:function(_10){=0A=
var =
wnd=3Dwindow.open("","_blank","dialog,width=3D300,height=3D150,scrollbars=
=3D0");=0A=
var doc=3Dwnd.document;=0A=
dp.sh.Utils.CopyStyles(doc,window.document);=0A=
doc.write(dp.sh.Strings.AboutDialog.replace("{V}",dp.sh.Version));=0A=
doc.close();=0A=
wnd.focus();=0A=
}}};=0A=
dp.sh.Toolbar.Create=3Dfunction(_13){=0A=
var div=3Ddocument.createElement("DIV");=0A=
div.className=3D"tools";=0A=
for(var _15 in dp.sh.Toolbar.Commands){=0A=
var cmd=3Ddp.sh.Toolbar.Commands[_15];=0A=
if(cmd.check!=3Dnull&&!cmd.check(_13)){=0A=
continue;=0A=
}=0A=
div.innerHTML+=3D"<a href=3D\"#\" =
onclick=3D\"dp.sh.Toolbar.Command('"+_15+"',this);return =
false;\">"+cmd.label+"</a>";=0A=
}=0A=
return div;=0A=
};=0A=
dp.sh.Toolbar.Command=3Dfunction(_17,_18){=0A=
var n=3D_18;=0A=
while(n!=3Dnull&&n.className.indexOf("dp-highlighter")=3D=3D-1){=0A=
n=3Dn.parentNode;=0A=
}=0A=
if(n!=3Dnull){=0A=
dp.sh.Toolbar.Commands[_17].func(_18,n.highlighter);=0A=
}=0A=
};=0A=
dp.sh.Utils.CopyStyles=3Dfunction(_1a,_1b){=0A=
var _1c=3D_1b.getElementsByTagName("link");=0A=
for(var i=3D0;i<_1c.length;i++){=0A=
if(_1c[i].rel.toLowerCase()=3D=3D"stylesheet"){=0A=
_1a.write("<link type=3D\"text/css\" rel=3D\"stylesheet\" =
href=3D\""+_1c[i].href+"\"></link>");=0A=
}=0A=
}=0A=
};=0A=
dp.sh.RegexLib=3D{MultiLineCComments:new =
RegExp("/\\*[\\s\\S]*?\\*/","gm"),SingleLineCComments:new =
RegExp("//.*$","gm"),SingleLinePerlComments:new =
RegExp("#.*$","gm"),DoubleQuotedString:new =
RegExp("\"(?:\\.|(\\\\\\\")|[^\\\"\"])*\"","g"),SingleQuotedString:new =
RegExp("'(?:\\.|(\\\\\\')|[^\\''])*'","g")};=0A=
dp.sh.Match=3Dfunction(_1e,_1f,css){=0A=
this.value=3D_1e;=0A=
this.index=3D_1f;=0A=
this.length=3D_1e.length;=0A=
this.css=3Dcss;=0A=
};=0A=
dp.sh.Highlighter=3Dfunction(){=0A=
this.noGutter=3Dfalse;=0A=
this.addControls=3Dtrue;=0A=
this.collapse=3Dfalse;=0A=
this.tabsToSpaces=3Dtrue;=0A=
this.wrapColumn=3D80;=0A=
this.showColumns=3Dtrue;=0A=
};=0A=
dp.sh.Highlighter.SortCallback=3Dfunction(m1,m2){=0A=
if(m1.index<m2.index){=0A=
return -1;=0A=
}else{=0A=
if(m1.index>m2.index){=0A=
return 1;=0A=
}else{=0A=
if(m1.length<m2.length){=0A=
return -1;=0A=
}else{=0A=
if(m1.length>m2.length){=0A=
return 1;=0A=
}=0A=
}=0A=
}=0A=
}=0A=
return 0;=0A=
};=0A=
dp.sh.Highlighter.prototype.CreateElement=3Dfunction(_23){=0A=
var _24=3Ddocument.createElement(_23);=0A=
_24.highlighter=3Dthis;=0A=
return _24;=0A=
};=0A=
dp.sh.Highlighter.prototype.GetMatches=3Dfunction(_25,css){=0A=
var _27=3D0;=0A=
var _28=3Dnull;=0A=
while((_28=3D_25.exec(this.code))!=3Dnull){=0A=
this.matches[this.matches.length]=3Dnew =
dp.sh.Match(_28[0],_28.index,css);=0A=
}=0A=
};=0A=
dp.sh.Highlighter.prototype.AddBit=3Dfunction(str,css){=0A=
if(str=3D=3Dnull||str.length=3D=3D0){=0A=
return;=0A=
}=0A=
var _2b=3Dthis.CreateElement("SPAN");=0A=
str=3Dstr.replace(/ /g,"&nbsp;");=0A=
str=3Dstr.replace(/</g,"&lt;");=0A=
str=3Dstr.replace(/\n/gm,"&nbsp;<br>");=0A=
if(css!=3Dnull){=0A=
if((/br/gi).test(str)){=0A=
var _2c=3Dstr.split("&nbsp;<br>");=0A=
for(var i=3D0;i<_2c.length;i++){=0A=
_2b=3Dthis.CreateElement("SPAN");=0A=
_2b.className=3Dcss;=0A=
_2b.innerHTML=3D_2c[i];=0A=
this.div.appendChild(_2b);=0A=
if(i+1<_2c.length){=0A=
this.div.appendChild(this.CreateElement("BR"));=0A=
}=0A=
}=0A=
}else{=0A=
_2b.className=3Dcss;=0A=
_2b.innerHTML=3Dstr;=0A=
this.div.appendChild(_2b);=0A=
}=0A=
}else{=0A=
_2b.innerHTML=3Dstr;=0A=
this.div.appendChild(_2b);=0A=
}=0A=
};=0A=
dp.sh.Highlighter.prototype.IsInside=3Dfunction(_2e){=0A=
if(_2e=3D=3Dnull||_2e.length=3D=3D0){=0A=
return false;=0A=
}=0A=
for(var i=3D0;i<this.matches.length;i++){=0A=
var c=3Dthis.matches[i];=0A=
if(c=3D=3Dnull){=0A=
continue;=0A=
}=0A=
if((_2e.index>c.index)&&(_2e.index<c.index+c.length)){=0A=
return true;=0A=
}=0A=
}=0A=
return false;=0A=
};=0A=
dp.sh.Highlighter.prototype.ProcessRegexList=3Dfunction(){=0A=
for(var i=3D0;i<this.regexList.length;i++){=0A=
this.GetMatches(this.regexList[i].regex,this.regexList[i].css);=0A=
}=0A=
};=0A=
dp.sh.Highlighter.prototype.ProcessSmartTabs=3Dfunction(_32){=0A=
var _33=3D_32.split("\n");=0A=
var _34=3D"";=0A=
var _35=3D4;=0A=
var tab=3D"\t";=0A=
function InsertSpaces(_37,pos,_39){=0A=
var _3a=3D_37.substr(0,pos);=0A=
var _3b=3D_37.substr(pos+1,_37.length);=0A=
var _3c=3D"";=0A=
for(var i=3D0;i<_39;i++){=0A=
_3c+=3D" ";=0A=
}=0A=
return _3a+_3c+_3b;=0A=
}=0A=
function ProcessLine(_3e,_3f){=0A=
if(_3e.indexOf(tab)=3D=3D-1){=0A=
return _3e;=0A=
}=0A=
var pos=3D0;=0A=
while((pos=3D_3e.indexOf(tab))!=3D-1){=0A=
var _41=3D_3f-pos%_3f;=0A=
_3e=3DInsertSpaces(_3e,pos,_41);=0A=
}=0A=
return _3e;=0A=
}=0A=
for(var i=3D0;i<_33.length;i++){=0A=
_34+=3DProcessLine(_33[i],_35)+"\n";=0A=
}=0A=
return _34;=0A=
};=0A=
dp.sh.Highlighter.prototype.SwitchToList=3Dfunction(){=0A=
var _43=3Dthis.div.innerHTML.replace(/<(br)\/?>/gi,"\n");=0A=
var _44=3D_43.split("\n");=0A=
if(this.addControls=3D=3Dtrue){=0A=
this.bar.appendChild(dp.sh.Toolbar.Create(this));=0A=
}=0A=
if(this.showColumns){=0A=
var div=3Dthis.CreateElement("div");=0A=
var _46=3Dthis.CreateElement("div");=0A=
var _47=3D10;=0A=
var i=3D1;=0A=
while(i<=3D150){=0A=
if(i%_47=3D=3D0){=0A=
div.innerHTML+=3Di;=0A=
i+=3D(i+"").length;=0A=
}else{=0A=
div.innerHTML+=3D"&middot;";=0A=
i++;=0A=
}=0A=
}=0A=
_46.className=3D"columns";=0A=
_46.appendChild(div);=0A=
this.bar.appendChild(_46);=0A=
}=0A=
for(var i=3D0,lineIndex=3Dthis.firstLine;i<_44.length-1;i++,lineIndex++){=0A=
var li=3Dthis.CreateElement("LI");=0A=
var _4b=3Dthis.CreateElement("SPAN");=0A=
li.className=3D(i%2=3D=3D0)?"alt":"";=0A=
_4b.innerHTML=3D_44[i]+"&nbsp;";=0A=
li.appendChild(_4b);=0A=
this.ol.appendChild(li);=0A=
}=0A=
this.div.innerHTML=3D"";=0A=
};=0A=
dp.sh.Highlighter.prototype.Highlight=3Dfunction(_4c){=0A=
function Trim(str){=0A=
return str.replace(/^\s*(.*?)[\s\n]*$/g,"$1");=0A=
}=0A=
function Chop(str){=0A=
return str.replace(/\n*$/,"").replace(/^\n*/,"");=0A=
}=0A=
function Unindent(str){=0A=
var _50=3Dstr.split("\n");=0A=
var _51=3Dnew Array();=0A=
var _52=3Dnew RegExp("^\\s*","g");=0A=
var min=3D1000;=0A=
for(var i=3D0;i<_50.length&&min>0;i++){=0A=
if(Trim(_50[i]).length=3D=3D0){=0A=
continue;=0A=
}=0A=
var _55=3D_52.exec(_50[i]);=0A=
if(_55!=3Dnull&&_55.length>0){=0A=
min=3DMath.min(_55[0].length,min);=0A=
}=0A=
}=0A=
if(min>0){=0A=
for(var i=3D0;i<_50.length;i++){=0A=
_50[i]=3D_50[i].substr(min);=0A=
}=0A=
}=0A=
return _50.join("\n");=0A=
}=0A=
function Copy(_57,_58,_59){=0A=
return _57.substr(_58,_59-_58);=0A=
}=0A=
var pos=3D0;=0A=
if(_4c=3D=3Dnull){=0A=
_4c=3D"";=0A=
}=0A=
this.originalCode=3D_4c;=0A=
this.code=3DChop(Unindent(_4c));=0A=
this.div=3Dthis.CreateElement("DIV");=0A=
this.bar=3Dthis.CreateElement("DIV");=0A=
this.ol=3Dthis.CreateElement("OL");=0A=
this.matches=3Dnew Array();=0A=
this.div.className=3D"dp-highlighter";=0A=
this.div.highlighter=3Dthis;=0A=
this.bar.className=3D"bar";=0A=
this.ol.start=3Dthis.firstLine;=0A=
if(this.CssClass!=3Dnull){=0A=
this.ol.className=3Dthis.CssClass;=0A=
}=0A=
if(this.collapse){=0A=
this.div.className+=3D" collapsed";=0A=
}=0A=
if(this.noGutter){=0A=
this.div.className+=3D" nogutter";=0A=
}=0A=
if(this.tabsToSpaces=3D=3Dtrue){=0A=
this.code=3Dthis.ProcessSmartTabs(this.code);=0A=
}=0A=
this.ProcessRegexList();=0A=
if(this.matches.length=3D=3D0){=0A=
this.AddBit(this.code,null);=0A=
this.SwitchToList();=0A=
this.div.appendChild(this.ol);=0A=
return;=0A=
}=0A=
this.matches=3Dthis.matches.sort(dp.sh.Highlighter.SortCallback);=0A=
for(var i=3D0;i<this.matches.length;i++){=0A=
if(this.IsInside(this.matches[i])){=0A=
this.matches[i]=3Dnull;=0A=
}=0A=
}=0A=
for(var i=3D0;i<this.matches.length;i++){=0A=
var _5d=3Dthis.matches[i];=0A=
if(_5d=3D=3Dnull||_5d.length=3D=3D0){=0A=
continue;=0A=
}=0A=
this.AddBit(Copy(this.code,pos,_5d.index),null);=0A=
this.AddBit(_5d.value,_5d.css);=0A=
pos=3D_5d.index+_5d.length;=0A=
}=0A=
this.AddBit(this.code.substr(pos),null);=0A=
this.SwitchToList();=0A=
this.div.appendChild(this.bar);=0A=
this.div.appendChild(this.ol);=0A=
};=0A=
dp.sh.Highlighter.prototype.GetKeywords=3Dfunction(str){=0A=
return "\\b"+str.replace(/ /g,"\\b|\\b")+"\\b";=0A=
};=0A=
dp.sh.HighlightAll=3Dfunction(_5f,_60,_61,_62,_63,_64){=0A=
function FindValue(){=0A=
var a=3Darguments;=0A=
for(var i=3D0;i<a.length;i++){=0A=
if(a[i]=3D=3Dnull){=0A=
continue;=0A=
}=0A=
if(typeof (a[i])=3D=3D"string"&&a[i]!=3D""){=0A=
return a[i]+"";=0A=
}=0A=
if(typeof (a[i])=3D=3D"object"&&a[i].value!=3D""){=0A=
return a[i].value+"";=0A=
}=0A=
}=0A=
return null;=0A=
}=0A=
function IsOptionSet(_67,_68){=0A=
for(var i=3D0;i<_68.length;i++){=0A=
if(_68[i]=3D=3D_67){=0A=
return true;=0A=
}=0A=
}=0A=
return false;=0A=
}=0A=
function GetOptionValue(_6a,_6b,_6c){=0A=
var _6d=3Dnew RegExp("^"+_6a+"\\[(\\w+)\\]$","gi");=0A=
var _6e=3Dnull;=0A=
for(var i=3D0;i<_6b.length;i++){=0A=
if((_6e=3D_6d.exec(_6b[i]))!=3Dnull){=0A=
return _6e[1];=0A=
}=0A=
}=0A=
return _6c;=0A=
}=0A=
function FindTagsByName(_70,_71,_72){=0A=
var _73=3Ddocument.getElementsByTagName(_72);=0A=
for(var i=3D0;i<_73.length;i++){=0A=
if(_73[i].getAttribute("name")=3D=3D_71){=0A=
_70.push(_73[i]);=0A=
}=0A=
}=0A=
}=0A=
var _75=3D[];=0A=
var _76=3Dnull;=0A=
var _77=3D{};=0A=
var _78=3D"innerHTML";=0A=
FindTagsByName(_75,_5f,"pre");=0A=
FindTagsByName(_75,_5f,"textarea");=0A=
if(_75.length=3D=3D0){=0A=
return;=0A=
}=0A=
for(var _79 in dp.sh.Brushes){=0A=
var _7a=3Ddp.sh.Brushes[_79].Aliases;=0A=
if(_7a=3D=3Dnull){=0A=
continue;=0A=
}=0A=
for(var i=3D0;i<_7a.length;i++){=0A=
_77[_7a[i]]=3D_79;=0A=
}=0A=
}=0A=
for(var i=3D0;i<_75.length;i++){=0A=
var _7d=3D_75[i];=0A=
var =
_7e=3DFindValue(_7d.attributes["class"],_7d.className,_7d.attributes["lan=
guage"],_7d.language);=0A=
var _7f=3D"";=0A=
if(_7e=3D=3Dnull){=0A=
continue;=0A=
}=0A=
_7e=3D_7e.split(":");=0A=
_7f=3D_7e[0].toLowerCase();=0A=
if(_77[_7f]=3D=3Dnull){=0A=
continue;=0A=
}=0A=
_76=3Dnew dp.sh.Brushes[_77[_7f]]();=0A=
_7d.style.display=3D"none";=0A=
_76.noGutter=3D(_60=3D=3Dnull)?IsOptionSet("nogutter",_7e):!_60;=0A=
_76.addControls=3D(_61=3D=3Dnull)?!IsOptionSet("nocontrols",_7e):_61;=0A=
_76.collapse=3D(_62=3D=3Dnull)?IsOptionSet("collapse",_7e):_62;=0A=
_76.showColumns=3D(_64=3D=3Dnull)?IsOptionSet("showcolumns",_7e):_64;=0A=
if(_76.Style){=0A=
document.write("<style>"+_76.Style+"</style>");=0A=
}=0A=
_76.firstLine=3D(_63=3D=3Dnull)?parseInt(GetOptionValue("firstline",_7e,1=
)):_63;=0A=
_76.Highlight(_7d[_78]);=0A=
_76.source=3D_7d;=0A=
_7d.parentNode.insertBefore(_76.div,_7d);=0A=
}=0A=
};=0A=
=0A=

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushCSharp.js

dp.sh.Brushes.CSharp =3D function()
{
	var keywords =3D	'abstract as base bool break byte case catch char =
checked class const ' +
					'continue decimal default delegate do double else enum event =
explicit ' +
					'extern false finally fixed float for foreach get goto if implicit =
in int ' +
					'interface internal is lock long namespace new null object operator =
out ' +
					'override params private protected public readonly ref return sbyte =
sealed set ' +
					'short sizeof stackalloc static string struct switch this throw =
true try ' +
					'typeof uint ulong unchecked unsafe ushort using virtual void =
while';

	this.regexList =3D [
		// There's a slight problem with matching single line comments and =
figuring out
		// a difference between // and ///. Using lookahead and lookbehind =
solves the
		// problem, unfortunately JavaScript doesn't support lookbehind. So =
I'm at a=20
		// loss how to translate that regular expression to JavaScript =
compatible one.
//		{ regex: new =
RegExp('(?<!/)//(?!/).*$|(?<!/)////(?!/).*$|/\\*[^\\*]*(.)*?\\*/', =
'gm'),	css: 'comment' },			// one line comments starting with anything =
BUT '///' and multiline comments
//		{ regex: new RegExp('(?<!/)///(?!/).*$', 'gm'),											css: =
'comments' },		// XML comments starting with ///

		{ regex: dp.sh.RegexLib.SingleLineCComments,				css: 'comment' },			// =
one line comments
		{ regex: dp.sh.RegexLib.MultiLineCComments,					css: 'comment' },			// =
multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'string' },			// =
strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },			// =
strings
		{ regex: new RegExp('^\\s*#.*', 'gm'),						css: 'preprocessor' },		// =
preprocessor tags like #region and #endregion
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' =
}			// c# keyword
		];

	this.CssClass =3D 'dp-c';
	this.Style =3D '.dp-c .vars { color: #d00; }';
}

dp.sh.Brushes.CSharp.prototype	=3D new dp.sh.Highlighter();
dp.sh.Brushes.CSharp.Aliases	=3D ['c#', 'c-sharp', 'csharp'];

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushPhp.js

dp.sh.Brushes.Php =3D function()
{
	var funcs	=3D	'abs acos acosh addcslashes addslashes ' +
					'array_change_key_case array_chunk array_combine array_count_values =
array_diff '+
					'array_diff_assoc array_diff_key array_diff_uassoc array_diff_ukey =
array_fill '+
					'array_filter array_flip array_intersect array_intersect_assoc =
array_intersect_key '+
					'array_intersect_uassoc array_intersect_ukey array_key_exists =
array_keys array_map '+
					'array_merge array_merge_recursive array_multisort array_pad =
array_pop array_product '+
					'array_push array_rand array_reduce array_reverse array_search =
array_shift '+
					'array_slice array_splice array_sum array_udiff array_udiff_assoc =
'+
					'array_udiff_uassoc array_uintersect array_uintersect_assoc '+
					'array_uintersect_uassoc array_unique array_unshift array_values =
array_walk '+
					'array_walk_recursive atan atan2 atanh base64_decode base64_encode =
base_convert '+
					'basename bcadd bccomp bcdiv bcmod bcmul bindec bindtextdomain =
bzclose bzcompress '+
					'bzdecompress bzerrno bzerror bzerrstr bzflush bzopen bzread =
bzwrite ceil chdir '+
					'checkdate checkdnsrr chgrp chmod chop chown chr chroot chunk_split =
class_exists '+
					'closedir closelog copy cos cosh count count_chars date decbin =
dechex decoct '+
					'deg2rad delete ebcdic2ascii echo empty end ereg ereg_replace eregi =
eregi_replace error_log '+
					'error_reporting escapeshellarg escapeshellcmd eval exec exit exp =
explode extension_loaded '+
					'feof fflush fgetc fgetcsv fgets fgetss file_exists =
file_get_contents file_put_contents '+
					'fileatime filectime filegroup fileinode filemtime fileowner =
fileperms filesize filetype '+
					'floatval flock floor flush fmod fnmatch fopen fpassthru fprintf =
fputcsv fputs fread fscanf '+
					'fseek fsockopen fstat ftell ftok getallheaders getcwd getdate =
getenv gethostbyaddr gethostbyname '+
					'gethostbynamel getimagesize getlastmod getmxrr getmygid getmyinode =
getmypid getmyuid getopt '+
					'getprotobyname getprotobynumber getrandmax getrusage getservbyname =
getservbyport gettext '+
					'gettimeofday gettype glob gmdate gmmktime ini_alter ini_get =
ini_get_all ini_restore ini_set '+
					'interface_exists intval ip2long is_a is_array is_bool is_callable =
is_dir is_double '+
					'is_executable is_file is_finite is_float is_infinite is_int =
is_integer is_link is_long '+
					'is_nan is_null is_numeric is_object is_readable is_real =
is_resource is_scalar is_soap_fault '+
					'is_string is_subclass_of is_uploaded_file is_writable is_writeable =
mkdir mktime nl2br '+
					'parse_ini_file parse_str parse_url passthru pathinfo readlink =
realpath rewind rewinddir rmdir '+
					'round str_ireplace str_pad str_repeat str_replace str_rot13 =
str_shuffle str_split '+
					'str_word_count strcasecmp strchr strcmp strcoll strcspn strftime =
strip_tags stripcslashes '+
					'stripos stripslashes stristr strlen strnatcasecmp strnatcmp =
strncasecmp strncmp strpbrk '+
					'strpos strptime strrchr strrev strripos strrpos strspn strstr =
strtok strtolower strtotime '+
					'strtoupper strtr strval substr substr_compare';

	var keywords =3D	'and or xor __FILE__ __LINE__ array as break case ' +
					'cfunction class const continue declare default die do else ' +
					'elseif empty enddeclare endfor endforeach endif endswitch endwhile =
' +
					'extends for foreach function include include_once global if ' +
					'new old_function return static switch use require require_once ' +
					'var while __FUNCTION__ __CLASS__ ' +
					'__METHOD__ abstract interface public implements extends private =
protected throw';

	this.regexList =3D [
		{ regex: dp.sh.RegexLib.SingleLineCComments,				css: 'comment' },			// =
one line comments
		{ regex: dp.sh.RegexLib.MultiLineCComments,					css: 'comment' },			// =
multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'string' },			// =
double quoted strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },			// =
single quoted strings
		{ regex: new RegExp('\\$\\w+', 'g'),						css: 'vars' },				// =
variables
		{ regex: new RegExp(this.GetKeywords(funcs), 'gmi'),		css: 'func' },			=
	// functions
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' =
}			// keyword
		];

	this.CssClass =3D 'dp-c';
}

dp.sh.Brushes.Php.prototype	=3D new dp.sh.Highlighter();
dp.sh.Brushes.Php.Aliases	=3D ['php'];

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushJScript.js

dp.sh.Brushes.JScript =3D function()
{
	var keywords =3D	'abstract boolean break byte case catch char class =
const continue debugger ' +
					'default delete do double else enum export extends false final =
finally float ' +
					'for function goto if implements import in instanceof int interface =
long native ' +
					'new null package private protected public return short static =
super switch ' +
					'synchronized this throw throws transient true try typeof var void =
volatile while with';

	this.regexList =3D [
		{ regex: dp.sh.RegexLib.SingleLineCComments,				css: 'comment' },			// =
one line comments
		{ regex: dp.sh.RegexLib.MultiLineCComments,					css: 'comment' },			// =
multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'string' },			// =
double quoted strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },			// =
single quoted strings
		{ regex: new RegExp('^\\s*#.*', 'gm'),						css: 'preprocessor' },		// =
preprocessor tags like #region and #endregion
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' =
}			// keywords
		];

	this.CssClass =3D 'dp-c';
}

dp.sh.Brushes.JScript.prototype	=3D new dp.sh.Highlighter();
dp.sh.Brushes.JScript.Aliases	=3D ['js', 'jscript', 'javascript'];

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushJava.js

dp.sh.Brushes.Java =3D function()
{
	var keywords =3D	'abstract assert boolean break byte case catch char =
class const ' +
			'continue default do double else enum extends ' +
			'false final finally float for goto if implements import ' +
			'instanceof int interface long native new null ' +
			'package private protected public return ' +
			'short static strictfp super switch synchronized this throw throws =
true ' +
			'transient try void volatile while';

	this.regexList =3D [
		{ regex: dp.sh.RegexLib.SingleLineCComments,							css: 'comment' },		=
// one line comments
		{ regex: dp.sh.RegexLib.MultiLineCComments,								css: 'comment' },		=
// multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,								css: 'string' },		=
// strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,								css: 'string' },		=
// strings
		{ regex: new RegExp('\\b([\\d]+(\\.[\\d]+)?|0x[a-f0-9]+)\\b', 'gi'),	=
css: 'number' },		// numbers
		{ regex: new RegExp('(?!\\@interface\\b)\\@[\\$\\w]+\\b', 'g'),			css: =
'annotation' },	// annotation @anno
		{ regex: new RegExp('\\@interface\\b', 'g'),							css: 'keyword' },		=
// @interface keyword
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),					css: =
'keyword' }		// java keyword
		];

	this.CssClass =3D 'dp-j';
	this.Style =3D	'.dp-j .annotation { color: #646464; }' +
					'.dp-j .number { color: #C00000; }';
}

dp.sh.Brushes.Java.prototype	=3D new dp.sh.Highlighter();
dp.sh.Brushes.Java.Aliases	=3D ['java'];

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushVb.js

dp.sh.Brushes.Vb =3D function()
{
	var keywords =3D	'AddHandler AddressOf AndAlso Alias And Ansi As =
Assembly Auto ' +
					'Boolean ByRef Byte ByVal Call Case Catch CBool CByte CChar CDate ' =
+
					'CDec CDbl Char CInt Class CLng CObj Const CShort CSng CStr CType ' =
+
					'Date Decimal Declare Default Delegate Dim DirectCast Do Double =
Each ' +
					'Else ElseIf End Enum Erase Error Event Exit False Finally For =
Friend ' +
					'Function Get GetType GoSub GoTo Handles If Implements Imports In ' =
+
					'Inherits Integer Interface Is Let Lib Like Long Loop Me Mod Module =
' +
					'MustInherit MustOverride MyBase MyClass Namespace New Next Not =
Nothing ' +
					'NotInheritable NotOverridable Object On Option Optional Or OrElse =
' +
					'Overloads Overridable Overrides ParamArray Preserve Private =
Property ' +
					'Protected Public RaiseEvent ReadOnly ReDim REM RemoveHandler =
Resume ' +
					'Return Select Set Shadows Shared Short Single Static Step Stop =
String ' +
					'Structure Sub SyncLock Then Throw To True Try TypeOf Unicode Until =
' +
					'Variant When While With WithEvents WriteOnly Xor';

	this.regexList =3D [
		{ regex: new RegExp('\'.*$', 'gm'),							css: 'comment' },			// one =
line comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'string' },			// =
strings
		{ regex: new RegExp('^\\s*#.*', 'gm'),						css: 'preprocessor' },		// =
preprocessor tags like #region and #endregion
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' =
}			// c# keyword
		];

	this.CssClass =3D 'dp-vb';
}

dp.sh.Brushes.Vb.prototype	=3D new dp.sh.Highlighter();
dp.sh.Brushes.Vb.Aliases	=3D ['vb', 'vb.net'];

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushSql.js

dp.sh.Brushes.Sql =3D function()
{
	var funcs	=3D	'abs avg case cast coalesce convert count =
current_timestamp ' +
					'current_user day isnull left lower month nullif replace right ' +
					'session_user space substring sum system_user upper user year';

	var keywords =3D	'absolute action add after alter as asc at =
authorization begin bigint ' +
					'binary bit by cascade char character check checkpoint close =
collate ' +
					'column commit committed connect connection constraint contains =
continue ' +
					'create cube current current_date current_time cursor database date =
' +
					'deallocate dec decimal declare default delete desc distinct double =
drop ' +
					'dynamic else end end-exec escape except exec execute false fetch =
first ' +
					'float for force foreign forward free from full function global =
goto grant ' +
					'group grouping having hour ignore index inner insensitive insert =
instead ' +
					'int integer intersect into is isolation key last level load local =
max min ' +
					'minute modify move name national nchar next no numeric of off on =
only ' +
					'open option order out output partial password precision prepare =
primary ' +
					'prior privileges procedure public read real references relative =
repeatable ' +
					'restrict return returns revoke rollback rollup rows rule schema =
scroll ' +
					'second section select sequence serializable set size smallint =
static ' +
					'statistics table temp temporary then time timestamp to top =
transaction ' +
					'translation trigger true truncate uncommitted union unique update =
values ' +
					'varchar varying view when where with work';

	var operators =3D	'all and any between cross in join like not null or =
outer some';

	this.regexList =3D [
		{ regex: new RegExp('--(.*)$', 'gm'),						css: 'comment' },			// one =
line and multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'string' },			// =
double quoted strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },			// =
single quoted strings
		{ regex: new RegExp(this.GetKeywords(funcs), 'gmi'),		css: 'func' },			=
	// functions
		{ regex: new RegExp(this.GetKeywords(operators), 'gmi'),	css: 'op' },		=
		// operators and such
		{ regex: new RegExp(this.GetKeywords(keywords), 'gmi'),		css: =
'keyword' }			// keyword
		];

	this.CssClass =3D 'dp-sql';
	this.Style =3D	'.dp-sql .func { color: #ff1493; }' +
					'.dp-sql .op { color: #808080; }';
}

dp.sh.Brushes.Sql.prototype	=3D new dp.sh.Highlighter();
dp.sh.Brushes.Sql.Aliases	=3D ['sql'];

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushXml.js

dp.sh.Brushes.Xml =3D function()
{
	this.CssClass =3D 'dp-xml';
	this.Style =3D	'.dp-xml .cdata { color: #ff1493; }' +
					'.dp-xml .tag, .dp-xml .tag-name { color: #069; font-weight: bold; =
}' +
					'.dp-xml .attribute { color: red; }' +
					'.dp-xml .attribute-value { color: blue; }';
}

dp.sh.Brushes.Xml.prototype	=3D new dp.sh.Highlighter();
dp.sh.Brushes.Xml.Aliases	=3D ['xml', 'xhtml', 'xslt', 'html', 'xhtml'];

dp.sh.Brushes.Xml.prototype.ProcessRegexList =3D function()
{
	function push(array, value)
	{
		array[array.length] =3D value;
	}
=09
	/* If only there was a way to get index of a group within a match, the =
whole XML
	   could be matched with the expression looking something like that:
=09
	   (<!\[CDATA\[\s*.*\s*\]\]>)
	   | (<!--\s*.*\s*?-->)
	   | (<)*(\w+)*\s*(\w+)\s*=3D\s*(".*?"|'.*?'|\w+)(/*>)*
	   | (</?)(.*?)(/?>)
	*/
	var index	=3D 0;
	var match	=3D null;
	var regex	=3D null;

	// Match CDATA in the following format <![ ... [ ... ]]>
	// (\&lt;|<)\!\[[\w\s]*?\[(.|\s)*?\]\](\&gt;|>)
	this.GetMatches(new =
RegExp('(\&lt;|<)\\!\\[[\\w\\s]*?\\[(.|\\s)*?\\]\\](\&gt;|>)', 'gm'), =
'cdata');
=09
	// Match comments
	// (\&lt;|<)!--\s*.*\s*?--(\&gt;|>)
	this.GetMatches(new RegExp('(\&lt;|<)!--\\s*.*\\s*?--(\&gt;|>)', 'gm'), =
'comments');

	// Match attributes and their values
	// (:|\w+)\s*=3D\s*(".*?"|\'.*?\'|\w+)*
	regex =3D new =
RegExp('([:\\w-\.]+)\\s*=3D\\s*(".*?"|\'.*?\'|\\w+)*|(\\w+)', 'gm'); // =
Thanks to Tomi Blinnikka of Yahoo! for fixing namespaces in attributes
	while((match =3D regex.exec(this.code)) !=3D null)
	{
		if(match[1] =3D=3D null)
		{
			continue;
		}
		=09
		push(this.matches, new dp.sh.Match(match[1], match.index, =
'attribute'));
=09
		// if xml is invalid and attribute has no property value, ignore it=09
		if(match[2] !=3D undefined)
		{
			push(this.matches, new dp.sh.Match(match[2], match.index + =
match[0].indexOf(match[2]), 'attribute-value'));
		}
	}

	// Match opening and closing tag brackets
	// (\&lt;|<)/*\?*(?!\!)|/*\?*(\&gt;|>)
	this.GetMatches(new RegExp('(\&lt;|<)/*\\?*(?!\\!)|/*\\?*(\&gt;|>)', =
'gm'), 'tag');

	// Match tag names
	// (\&lt;|<)/*\?*\s*(\w+)
	regex =3D new RegExp('(?:\&lt;|<)/*\\?*\\s*([:\\w-\.]+)', 'gm');
	while((match =3D regex.exec(this.code)) !=3D null)
	{
		push(this.matches, new dp.sh.Match(match[1], match.index + =
match[0].indexOf(match[1]), 'tag-name'));
	}
}

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushDelphi.js

/* Delphi brush is contributed by Eddie Shipman */
dp.sh.Brushes.Delphi =3D function()
{
	var keywords =3D	'abs addr and ansichar ansistring array as asm begin =
boolean byte cardinal ' +
					'case char class comp const constructor currency destructor div do =
double ' +
					'downto else end except exports extended false file finalization =
finally ' +
					'for function goto if implementation in inherited int64 =
initialization ' +
					'integer interface is label library longint longword mod nil not =
object ' +
					'of on or packed pansichar pansistring pchar pcurrency pdatetime =
pextended ' +=20
					'pint64 pointer private procedure program property pshortstring =
pstring ' +=20
					'pvariant pwidechar pwidestring protected public published raise =
real real48 ' +
					'record repeat set shl shortint shortstring shr single smallint =
string then ' +
					'threadvar to true try type unit until uses val var varirnt while =
widechar ' +
					'widestring with word write writeln xor';

	this.regexList =3D [
		{ regex: new RegExp('\\(\\*[\\s\\S]*?\\*\\)', 'gm'),		css: 'comment' =
},  			// multiline comments (* *)
		{ regex: new RegExp('{(?!\\$)[\\s\\S]*?}', 'gm'),			css: 'comment' },  =
			// multiline comments { }
		{ regex: dp.sh.RegexLib.SingleLineCComments,				css: 'comment' },  			=
// one line
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },			// =
strings
		{ regex: new RegExp('\\{\\$[a-zA-Z]+ .+\\}', 'g'),			css: 'directive' =
},			// Compiler Directives and Region tags
		{ regex: new RegExp('\\b[\\d\\.]+\\b', 'g'),				css: 'number' },			// =
numbers 12345
		{ regex: new RegExp('\\$[a-zA-Z0-9]+\\b', 'g'),				css: 'number' },			=
// numbers $F5D3
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' =
}			// keyword
		];

	this.CssClass =3D 'dp-delphi';
	this.Style =3D	'.dp-delphi .number { color: blue; }' +
					'.dp-delphi .directive { color: #008284; }' +
					'.dp-delphi .vars { color: #000; }';
}

dp.sh.Brushes.Delphi.prototype	=3D new dp.sh.Highlighter();
dp.sh.Brushes.Delphi.Aliases	=3D ['delphi', 'pascal'];

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushPython.js

/* Python 2.3 syntax contributed by Gheorghe Milas */
dp.sh.Brushes.Python =3D function()
{
    var keywords =3D  'and assert break class continue def del elif else =
' +
                    'except exec finally for from global if import in is =
' +
                    'lambda not or pass print raise return try yield =
while';

    var special =3D  'None True False self cls class_'

    this.regexList =3D [
        { regex: dp.sh.RegexLib.SingleLinePerlComments, css: 'comment' =
},
        { regex: new RegExp("^\\s*@\\w+", 'gm'), css: 'decorator' },
        { regex: new RegExp("(['\"]{3})([^\\1])*?\\1", 'gm'), css: =
'comment' },
        { regex: new RegExp('"(?!")(?:\\.|\\\\\\"|[^\\""\\n\\r])*"', =
'gm'), css: 'string' },
        { regex: new RegExp("'(?!')*(?:\\.|(\\\\\\')|[^\\''\\n\\r])*'", =
'gm'), css: 'string' },
        { regex: new RegExp("\\b\\d+\\.?\\w*", 'g'), css: 'number' },
        { regex: new RegExp(this.GetKeywords(keywords), 'gm'), css: =
'keyword' },
        { regex: new RegExp(this.GetKeywords(special), 'gm'), css: =
'special' },
        ];

    this.CssClass =3D 'dp-py';
	this.Style =3D	'.dp-py .builtins { color: #ff1493; }' +
					'.dp-py .magicmethods { color: #808080; }' +
					'.dp-py .exceptions { color: brown; }' +
					'.dp-py .types { color: brown; font-style: italic; }' +
					'.dp-py .commonlibs { color: #8A2BE2; font-style: italic; }';
}

dp.sh.Brushes.Python.prototype  =3D new dp.sh.Highlighter();
dp.sh.Brushes.Python.Aliases    =3D ['py', 'python'];

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushRuby.js

/* Ruby 1.8.4 syntax contributed by Erik Peterson */
dp.sh.Brushes.Ruby =3D function()
{
  var keywords =3D	'alias and BEGIN begin break case class def =
define_method defined do each else elsif ' +
					'END end ensure false for if in module new next nil not or raise =
redo rescue retry return ' +
					'self super then throw true undef unless until when while yield';

  var builtins =3D	'Array Bignum Binding Class Continuation Dir =
Exception FalseClass File::Stat File Fixnum Fload ' +
					'Hash Integer IO MatchData Method Module NilClass Numeric Object =
Proc Range Regexp String Struct::TMS Symbol ' +
					'ThreadGroup Thread Time TrueClass'

	this.regexList =3D [
		{ regex: dp.sh.RegexLib.SingleLinePerlComments,			css: 'comment' },	// =
one line comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,				css: 'string' },	// =
double quoted strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,				css: 'string' },	// =
single quoted strings
		{ regex: new RegExp(':[a-z][A-Za-z0-9_]*', 'g'),		css: 'symbol' },	// =
symbols
		{ regex: new RegExp('(\\$|@@|@)\\w+', 'g'),				css: 'variable' },	// =
$global, @instance, and @@class variables
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),	css: 'keyword' =
},	// keywords
		{ regex: new RegExp(this.GetKeywords(builtins), 'gm'),	css: 'builtin' =
}	// builtins
		];

	this.CssClass =3D 'dp-rb';
	this.Style =3D	'.dp-rb .symbol { color: #a70; }' +
					'.dp-rb .variable { color: #a70; font-weight: bold; }';
}

dp.sh.Brushes.Ruby.prototype =3D new dp.sh.Highlighter();
dp.sh.Brushes.Ruby.Aliases =3D ['ruby', 'rails', 'ror'];

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushCss.js

dp.sh.Brushes.CSS =3D function()
{
	var keywords =3D	'ascent azimuth background-attachment background-color =
background-image background-position ' +
					'background-repeat background baseline bbox border-collapse =
border-color border-spacing border-style border-top ' +
					'border-right border-bottom border-left border-top-color =
border-right-color border-bottom-color border-left-color ' +
					'border-top-style border-right-style border-bottom-style =
border-left-style border-top-width border-right-width ' +
					'border-bottom-width border-left-width border-width border bottom =
cap-height caption-side centerline clear clip color ' +
					'content counter-increment counter-reset cue-after cue-before cue =
cursor definition-src descent direction display ' +
					'elevation empty-cells float font-size-adjust font-family font-size =
font-stretch font-style font-variant font-weight font ' +
					'height letter-spacing line-height list-style-image =
list-style-position list-style-type list-style margin-top ' +
					'margin-right margin-bottom margin-left margin marker-offset marks =
mathline max-height max-width min-height min-width orphans ' +
					'outline-color outline-style outline-width outline overflow =
padding-top padding-right padding-bottom padding-left padding page ' +
					'page-break-after page-break-before page-break-inside pause =
pause-after pause-before pitch pitch-range play-during position ' +
					'quotes richness right size slope src speak-header speak-numeral =
speak-punctuation speak speech-rate stemh stemv stress ' +
					'table-layout text-align text-decoration text-indent text-shadow =
text-transform unicode-bidi unicode-range units-per-em ' +
					'vertical-align visibility voice-family volume white-space widows =
width widths word-spacing x-height z-index important';

	var values =3D	'above absolute all always aqua armenian attr aural auto =
avoid baseline behind below bidi-override black blink block blue bold =
bolder '+
					'both bottom braille capitalize caption center center-left =
center-right circle close-quote code collapse compact condensed '+
					'continuous counter counters crop cross crosshair cursive dashed =
decimal decimal-leading-zero default digits disc dotted double '+
					'embed embossed e-resize expanded extra-condensed extra-expanded =
fantasy far-left far-right fast faster fixed format fuchsia '+
					'gray green groove handheld hebrew help hidden hide high higher =
icon inline-table inline inset inside invert italic '+
					'justify landscape large larger left-side left leftwards level =
lighter lime line-through list-item local loud lower-alpha '+
					'lowercase lower-greek lower-latin lower-roman lower low ltr marker =
maroon medium message-box middle mix move narrower '+
					'navy ne-resize no-close-quote none no-open-quote no-repeat normal =
nowrap n-resize nw-resize oblique olive once open-quote outset '+
					'outside overline pointer portrait pre print projection purple red =
relative repeat repeat-x repeat-y rgb ridge right right-side '+
					'rightwards rtl run-in screen scroll semi-condensed semi-expanded =
separate se-resize show silent silver slower slow '+
					'small small-caps small-caption smaller soft solid speech spell-out =
square s-resize static status-bar sub super sw-resize '+
					'table-caption table-cell table-column table-column-group =
table-footer-group table-header-group table-row table-row-group teal '+
					'text-bottom text-top thick thin top transparent tty tv =
ultra-condensed ultra-expanded underline upper-alpha uppercase =
upper-latin '+
					'upper-roman url visible wait white wider w-resize x-fast x-high =
x-large x-loud x-low x-slow x-small x-soft xx-large xx-small yellow';
=09
	var fonts =3D		'[mM]onospace [tT]ahoma [vV]erdana [aA]rial [hH]elvetica =
[sS]ans-serif [sS]erif';

	this.regexList =3D [
		{ regex: dp.sh.RegexLib.MultiLineCComments,					css: 'comment' },	// =
multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'string' },	// =
double quoted strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },	// =
single quoted strings
		{ regex: new RegExp('\\#[a-zA-Z0-9]{3,6}', 'g'),			css: 'colors' },	// =
html colors
		{ regex: new RegExp('(\\d+)(px|pt|\:)', 'g'),				css: 'string' },	// =
size specifications
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' =
},	// keywords
		{ regex: new RegExp(this.GetKeywords(values), 'g'),			css: 'string' },	=
// values
		{ regex: new RegExp(this.GetKeywords(fonts), 'g'),			css: 'string' }		=
// fonts
		];

	this.CssClass =3D 'dp-css';
	this.Style =3D	'.dp-css .colors { color: darkred; }' +
					'.dp-css .vars { color: #d00; }';
}

dp.sh.Brushes.CSS.prototype	=3D new dp.sh.Highlighter();
dp.sh.Brushes.CSS.Aliases	=3D ['css'];

------=_NextPart_000_0068_01C8ADD8.3940D330
Content-Type: application/x-js
Content-Transfer-Encoding: quoted-printable
Content-Location: http://www.mattpolito.info/wp-content/plugins/google-syntax-highlighter/Scripts/shBrushCpp.js

/**
 * Code Syntax Highlighter for C++(Windows Platform).
 * Version 0.0.2
 * Copyright (C) 2006 Shin, YoungJin.
 * http://www.jiniya.net/lecture/techbox/test.html
 *=20
 * This library is free software; you can redistribute it and/or modify =
it under the terms of the GNU Lesser General=20
 * Public License as published by the Free Software Foundation; either =
version 2.1 of the License, or (at your option)=20
 * any later version.
 *
 * This library is distributed in the hope that it will be useful, but =
WITHOUT ANY WARRANTY; without even the implied=20
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See =
the GNU Lesser General Public License for more=20
 * details.
 *
 * You should have received a copy of the GNU Lesser General Public =
License along with this library; if not, write to=20
 * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, =
Boston, MA 02111-1307 USA=20
 */

dp.sh.Brushes.Cpp =3D function()
{
	var datatypes =3D=20
	'ATOM BOOL BOOLEAN BYTE CHAR COLORREF DWORD DWORDLONG DWORD_PTR ' +
	'DWORD32 DWORD64 FLOAT HACCEL HALF_PTR HANDLE HBITMAP HBRUSH ' +=20
	'HCOLORSPACE HCONV HCONVLIST HCURSOR HDC HDDEDATA HDESK HDROP HDWP ' +
	'HENHMETAFILE HFILE HFONT HGDIOBJ HGLOBAL HHOOK HICON HINSTANCE HKEY ' =
+
	'HKL HLOCAL HMENU HMETAFILE HMODULE HMONITOR HPALETTE HPEN HRESULT ' +
	'HRGN HRSRC HSZ HWINSTA HWND INT INT_PTR INT32 INT64 LANGID LCID LCTYPE =
' +
	'LGRPID LONG LONGLONG LONG_PTR LONG32 LONG64 LPARAM LPBOOL LPBYTE =
LPCOLORREF ' +
	'LPCSTR LPCTSTR LPCVOID LPCWSTR LPDWORD LPHANDLE LPINT LPLONG LPSTR =
LPTSTR ' +
	'LPVOID LPWORD LPWSTR LRESULT PBOOL PBOOLEAN PBYTE PCHAR PCSTR PCTSTR =
PCWSTR ' +
	'PDWORDLONG PDWORD_PTR PDWORD32 PDWORD64 PFLOAT PHALF_PTR PHANDLE PHKEY =
PINT ' +
	'PINT_PTR PINT32 PINT64 PLCID PLONG PLONGLONG PLONG_PTR PLONG32 PLONG64 =
POINTER_32 ' +
	'POINTER_64 PSHORT PSIZE_T PSSIZE_T PSTR PTBYTE PTCHAR PTSTR PUCHAR =
PUHALF_PTR ' +
	'PUINT PUINT_PTR PUINT32 PUINT64 PULONG PULONGLONG PULONG_PTR PULONG32 =
PULONG64 ' +
	'PUSHORT PVOID PWCHAR PWORD PWSTR SC_HANDLE SC_LOCK =
SERVICE_STATUS_HANDLE SHORT ' +=20
	'SIZE_T SSIZE_T TBYTE TCHAR UCHAR UHALF_PTR UINT UINT_PTR UINT32 UINT64 =
ULONG ' +
	'ULONGLONG ULONG_PTR ULONG32 ULONG64 USHORT USN VOID WCHAR WORD WPARAM =
WPARAM WPARAM ' +
	'char bool short int __int32 __int64 __int8 __int16 long float double =
__wchar_t ' +
	'clock_t _complex _dev_t _diskfree_t div_t ldiv_t _exception =
_EXCEPTION_POINTERS ' +
	'FILE _finddata_t _finddatai64_t _wfinddata_t _wfinddatai64_t =
__finddata64_t ' +
	'__wfinddata64_t _FPIEEE_RECORD fpos_t _HEAPINFO _HFILE lconv intptr_t =
' +
	'jmp_buf mbstate_t _off_t _onexit_t _PNH ptrdiff_t _purecall_handler ' =
+
	'sig_atomic_t size_t _stat __stat64 _stati64 terminate_function ' +
	'time_t __time64_t _timeb __timeb64 tm uintptr_t _utimbuf ' +
	'va_list wchar_t wctrans_t wctype_t wint_t signed';

	var keywords =3D=20
	'break case catch class const __finally __exception __try ' +
	'const_cast continue private public protected __declspec ' +=20
	'default delete deprecated dllexport dllimport do dynamic_cast ' +=20
	'else enum explicit extern if for friend goto inline ' +=20
	'mutable naked namespace new noinline noreturn nothrow ' +=20
	'register reinterpret_cast return selectany ' +=20
	'sizeof static static_cast struct switch template this ' +=20
	'thread throw true false try typedef typeid typename union ' +=20
	'using uuid virtual void volatile whcar_t while';

	this.regexList =3D [
		{ regex: dp.sh.RegexLib.SingleLineCComments,				css: 'comment' },			// =
one line comments
		{ regex: dp.sh.RegexLib.MultiLineCComments,					css: 'comment' },			// =
multiline comments
		{ regex: dp.sh.RegexLib.DoubleQuotedString,					css: 'string' },			// =
strings
		{ regex: dp.sh.RegexLib.SingleQuotedString,					css: 'string' },			// =
strings
		{ regex: new RegExp('^ *#.*', 'gm'),						css: 'preprocessor' },
		{ regex: new RegExp(this.GetKeywords(datatypes), 'gm'),		css: =
'datatypes' },
		{ regex: new RegExp(this.GetKeywords(keywords), 'gm'),		css: 'keyword' =
}
		];

	this.CssClass =3D 'dp-cpp';
	this.Style =3D	'.dp-cpp .datatypes { color: #2E8B57; font-weight: bold; =
}';
}

dp.sh.Brushes.Cpp.prototype	=3D new dp.sh.Highlighter();
dp.sh.Brushes.Cpp.Aliases	=3D ['cpp', 'c', 'c++'];

------=_NextPart_000_0068_01C8ADD8.3940D330--
